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

使用MS Graph获取SPO租户站点列表返回空数组问题咨询

问题解答

核心问题:权限不匹配

你当前请求的User.ReadBasic.All权限仅用于读取用户基本信息,完全没有访问SharePoint站点数据的权限,这才是调用/api('sites')返回空数组的根本原因——Graph API因权限不足,会返回空结果而非报错(这是隐私安全层面的设计)。

关于/api('sites')的写法

调用api('sites')或api('/sites')的写法是正确的,SPFx的Graph客户端会自动处理路径拼接,和api('users')的写法逻辑一致,不存在语法错误。

所需权限配置

要读取租户所有站点数据,需要在SPFx权限配置中添加以下Graph权限之一:

  • Sites.Read.All:只读权限(推荐使用)
  • Sites.ReadWrite.All:读写权限(仅当需要修改站点时才需配置)
    添加权限后需租户管理员重新审批,权限生效后即可正常获取站点数据。

补充:精准获取中心站点

如果需要专门获取所有中心站点,可在请求中添加筛选条件(中心站点的根模板ID为68):

this.context.graphClient.api('/sites').filter("siteCollection/rootTemplate eq 68").get();

补充:获取子站点

要获取某个站点的所有子站点,需先获取目标站点ID,再调用:

this.context.graphClient.api(`/sites/${siteId}/sites`).get();

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.08 18:03:10