How to export GLTF with materails?

Forums: 

Following is my code that exports Shape to GLTF base54 encoded string. But its all grey. How do I add materials?

def export_shape_gltf(shp: TopoDS_Shape, asc: bool = False) -> str:
    """
    Export shape to gltf
    Returns the base64 encoded gltf (glb) file

    """
    doc = TDocStd_Document("pythonocc-doc-gltf-export")
    shape_tool = XCAFDoc_DocumentTool.ShapeTool(doc.Main())


    # Clean UP and Tessellate the Shape
    breptools.Clean(shp)
    # Triangulate
    msh_algo = BRepMesh_IncrementalMesh(shp, True)
    msh_algo.Perform()

    # Add Shape to document. This is required for glTF export
    shape_tool.AddShape(shp)

    # SetGLTF Options
    a_format = RWGltf_WriterTrsfFormat.RWGltf_WriterTrsfFormat_Compact
    force_uv_export = True

    # Add  Metadata
    a_file_info = TColStd_IndexedDataMapOfStringString()
    a_file_info.Add(
        TCollection_AsciiString("Authors"), TCollection_AsciiString("CoEdge Inc"))

    # Write to file (ASCII or Binary)
    home_dir = os.path.expanduser("~")
    os.makedirs(os.path.join(home_dir, "tmp"), exist_ok=True)
    home_dir = os.path.join(home_dir, "tmp")

    is_binary = True

    # pylint: disable=consider-using-with
    file_name = tempfile.NamedTemporaryFile(
        suffix='.glb', prefix="tmp", dir=home_dir).name
    if asc:
        is_binary = False
        file_name = tempfile.NamedTemporaryFile(
            suffix='.gltf', prefix="tmp", dir=home_dir).name

    logger.debug("Exporting GLTF to file : %s", file_name)

    rwgltf_writer = RWGltf_CafWriter(file_name, is_binary)
    rwgltf_writer.SetTransformationFormat(a_format)
    rwgltf_writer.SetForcedUVExport(force_uv_export)
    rwgltf_writer.SetMergeFaces(True)
    rwgltf_writer.SetToEmbedTexturesInGlb(True)
    status = rwgltf_writer.Perform(doc, a_file_info, Message_ProgressRange())

    logger.info("GLTF Export Status: %s", status)

    file_base64 = encode_file_base64(file_name)

    return file_base64