如何通过MS Graph检索SharePoint文档库中的自定义文档模板?
SharePoint文档库的自定义模板确实存储在文档库根目录下的Forms文件夹,但该文件夹属于隐藏系统文件夹,无法通过常规的/sites/{site-id}/drives/{drive-id}/root/children接口直接列出或按路径访问。以下是可行的检索方法:
方法1:通过文档库内容类型关联获取
自定义文档模板会绑定到对应内容类型,可通过内容类型端点提取模板信息:
- 调用接口获取目标文档库的内容类型集合:
GET https://graph.microsoft.com/v1.0/sites/{site-id}/lists/{list-id}/contentTypes - 在返回结果的
contentTypes数组中,找到包含documentTemplate属性的条目,该属性的sourceUrl字段即为模板文件的绝对路径。 - 凭借
sourceUrl直接调用文件内容接口:GET https://graph.microsoft.com/v1.0/sites/{site-id}/drive/root:/{sourceUrl}:/content
方法2:通过模板文件ID直接访问
若能通过SharePoint界面或其他渠道获取到Forms文件夹内模板文件的ID,可直接调用文件详情或内容接口:
- 获取文件详情:
GET https://graph.microsoft.com/v1.0/sites/{site-id}/drives/{drive-id}/items/{template-file-id} - 获取文件内容:
GET https://graph.microsoft.com/v1.0/sites/{site-id}/drives/{drive-id}/items/{template-file-id}/content
方法3:利用搜索接口定位模板
通过MS Graph的搜索功能,根据模板文件名或路径关键词查找:
GET https://graph.microsoft.com/v1.0/search/query Content-Type: application/json { "requests": [ { "entityTypes": ["driveItem"], "query": { "queryString": "filename:*.dotx AND path:/sites/{site-name}/{library-name}/Forms" }, "from": 0, "size": 25 } ] }
替换{site-name}和{library-name}为实际站点与文档库名称,搜索结果会包含模板文件的ID、访问路径等详细信息。
内容的提问来源于stack exchange,提问作者TheShadow
相关产品推荐
相关产品推荐

