使用ADF Web Activity获取SharePoint文件夹文件名返回空值求助
1. 排查Token权限范围
- 确认获取token时的
scope参数包含Sites.Read.All或Sites.ReadWrite.All。如果使用Sites.Selected,必须确保目标SharePoint站点已给服务主体授予对应权限。 - 可以解码token(本地用jwt.io工具即可),查看
scp字段,验证权限是否覆盖目标站点。
2. 校验API请求端点格式
- 获取文件夹内容的正确Graph API端点格式为:
或者使用站点域名+名称的写法:https://graph.microsoft.com/v1.0/sites/{site-id}/drive/root:/{folder-relative-path}:/childrenhttps://graph.microsoft.com/v1.0/sites/{domain}:/{site-name}:/drive/root:/{folder-relative-path}:/children - 注意
{folder-relative-path}是相对于文档库根目录的路径,比如Documents/ProjectFiles,不要带开头斜杠,也不要使用SharePoint的完整站点URL。
3. 确认目标文件夹实际存在内容
- 手动登录目标SharePoint站点,检查对应文件夹下是否真的有文件或子文件夹。空文件夹调用API自然会返回
value: []。 - 注意区分文档库根目录和子文件夹,比如默认文档库是
Documents,如果要访问其下的子文件夹,路径要准确对应。
4. 检查Web Activity的请求配置
- 确保Web2的请求方法为
GET,而非POST或其他方法。 - 确认请求头包含
Accept: application/json(部分场景下缺失会导致响应格式异常),同时Authorization头的Bearer和token之间有空格(你当前的写法@{concat('Bearer ', activity('Web1').output.access_token)}是正确的,但可以再验证运行时的实际请求头)。 - 查看Web Activity的完整输出,检查
@odata.context字段是否正确指向目标站点,如果该字段正确但value为空,优先排查权限或文件夹内容。
5. 服务主体的站点级权限验证
- 如果使用服务主体获取token,需确认服务主体在目标SharePoint站点的具体权限:
- 进入站点设置 -> 站点权限 -> 高级权限设置
- 给服务主体授予“读取”或更高权限
即使token包含Sites.Read.All,若站点设置了权限限制,服务主体仍可能无法访问内容。
内容的提问来源于stack exchange,提问作者Greencolor
相关产品推荐
相关产品推荐

