Microsoft Graph API在调用时不返回根网站的子网站列表
GET https://graph.microsoft.com/v1.0/sites/root/sites
(经过OAuth2样板之后(。
我已经检查了我的子网站网址,它在下很好
GET https://{org_name}.sharepoint.com/sites/{mysite}
然而,如果我试图通过这里提到的路径获得网站
https://learn.microsoft.com/en-us/graph/api/site-getbypath?view=graph-rest-1.0
GET https://graph.microsoft.com/v1.0/sites/root:/sites/mysite
它找到网站,并返回其信息。这需要我提前知道网站的名称。但我希望能够首先列出网站,然后选择一个。
我的问题是,如果列表端点/sites/root/sites
什么都不返回,或者我在某些设置上丢失了,导致网站无法列出,那么它的意义何在?
我正在使用范围Sites.ReadWrite.All
事实证明,授权代码是错误的方法,因为它只代表一个用户进行连接,而sharepoint端点列出了整个组织的站点。我尝试了另一个流,它代表应用程序/组织使用管理员同意进行连接:https://learn.microsoft.com/en-us/graph/auth-v2-service?context=graph%2Fapi%2Fbeta&view=图休息测试版
这是客户端证书授予的一个稍微修改过的版本,因为在标准OAuth 2中,客户端证书授予只需要一个请求,但这个请求需要两个请求。我认为这是授权代码和客户端凭据的混合。这仅适用于Microsoft。不管怎样,在经历了这个流程之后,我能够看到网站列表。问题已解决。