如何仅通过文档URL获取Microsoft Graph API的driveItem ID?
有两种可靠的方法实现这个需求:
方法1:使用/shares端点(官方推荐)
这是最直接的方式,无需手动解析URL结构:
- 对目标文档URL进行URL编码,然后在编码后的字符串前添加
u!前缀。
例如原URL:https://tenant.sharepoint.com/sites/somesite/somefolder/somedocument.doc
编码后加前缀得到:u!https%3A%2F%2Ftenant.sharepoint.com%2Fsites%2Fsomesite%2Fsomefolder%2Fsomedocument.doc - 调用Microsoft Graph API的GET请求:
GET https://graph.microsoft.com/v1.0/shares/{encodedUrl}/driveItem
替换{encodedUrl}为上面生成的字符串即可,请求成功后会返回对应的driveItem对象。
方法2:手动解析URL构造请求
如果需要手动定位,可从URL中提取关键信息后构造请求:
- 从文档URL中提取:租户域名(
tenant.sharepoint.com)、站点名称(somesite)、文件夹路径(somefolder)、文档名称(somedocument.doc) - 调用站点drive的路径定位接口:
GET https://graph.microsoft.com/v1.0/sites/tenant.sharepoint.com:/sites/somesite:/drive/root:/somefolder/somedocument.doc
注意事项
- 确保请求账号拥有足够权限,如
Files.Read、Sites.ReadAll等; /shares端点支持多种SharePoint/OneDrive URL类型,兼容性更强,优先推荐使用。
内容的提问来源于stack exchange,提问作者Jan Martin
相关产品推荐
相关产品推荐

