You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何通过Microsoft Graph API查询指定用户的SharePoint共享链接

查询指定用户的SharePoint共享链接方案

你之前的思路里,User->Drive对应的是用户个人OneDrive,而非SharePoint站点的文档库,这可能是你构建请求失败的原因。下面提供两种可行的实现方式:

一、从Site对象起点查询(推荐)

如果知道目标SharePoint站点的ID或URL,直接从Site出发查询更精准:

  1. 先获取目标站点的所有文档库(Drive)
GET https://graph.microsoft.com/v1.0/sites/{site-id}/drives

要是不知道站点ID,也可以通过站点URL获取:

GET https://graph.microsoft.com/v1.0/sites/{域名}:/{站点路径}
  1. 查询单个文档库中带共享链接的文件/文件夹
    用$filter筛掉share属性为空的项,同时用$expand展开共享链接的详细信息:
GET https://graph.microsoft.com/v1.0/drives/{drive-id}/root/children?$filter=share ne null&$expand=share

如果需要递归查询所有子文件夹的内容,加上$recursive=true(注意要改用search端点):

GET https://graph.microsoft.com/v1.0/drives/{drive-id}/root/search(q='*')?$filter=share ne null&$expand=share&$recursive=true

二、从用户起点查询被授予的共享链接

如果要找指定用户被共享的所有SharePoint内容,直接用sharedWithMe端点更高效,这个端点会返回所有共享给该用户的内容(包括OneDrive和SharePoint):

GET https://graph.microsoft.com/v1.0/me/drive/sharedWithMe?$expand=share

如果要查询其他用户,需要有对应权限,用用户ID替换me:

GET https://graph.microsoft.com/v1.0/users/{user-id}/drive/sharedWithMe?$expand=share

关键注意点

  • 权限:需要Files.Read.All/Sites.Read.All应用权限,或者Files.Read/Sites.Read委托权限,具体看你的使用场景。
  • 分页:结果多的时候API会返回分页令牌,要通过@odata.nextLink继续拉取后续内容。
  • 性能:直接递归遍历文件夹可能慢,推荐用search端点结合筛选的方式。

内容的提问来源于stack exchange,提问作者XChoopa

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.13 06:01:25