reactjs 使用msGraph从SPO租户获取站点列表时没有返回任何内容

ne5o7dgx  于 2023-10-17  发布在  React
关注(0)|答案(1)|浏览(110)

我正尝试使用msGraph从我的SharePoint Online租户获取所有中心站点、站点和子站点的列表。下面是我正在使用的代码:
Package 解决方案:

"webApiPermissionRequests": [
      {
        "resource": "Microsoft Graph",
        "scope": "User.ReadBasic.All"
      }
    ],

数据访问:

export const GetSitesMsGraph = (context: any) => {
 return context.msGraphClientFactory
    .getClient('3')
    .then((client: MSGraphClientV3) => {
      client
        .api('sites')
        .version("v1.0")
        .get((err, res) => {
          if (err) {
            console.error(err);
            return;
          }
          console.log(res)
          return res;
        })
    })
}

这将返回一个空数组。我已经尝试交换.api('sites').api('/sites')和仍然没有返回的数据。
如果我用.api('users')替换.api('sites'),我将从租户获得完整的用户列表。这个sites不正确吗?我已经确保所有使用msGraph的SPFx调用都具有租户管理员的权限。
我也读了下面的:
https://learn.microsoft.com/en-us/sharepoint/dev/spfx/use-aad-tutorial

agxfikkp

agxfikkp1#

是,默认情况下,Graph API端点/sites返回空值。
解决方法是使用search查询参数

.api('sites?search=')
.api('sites?search=*')

或使用应用程序权限,可以列出所有站点

.api('sites/getAllSites')

我记得即使/sites?search=*也不会返回所有子站点(跨所有地理位置)

相关问题