调用Graph API查询SharePoint sites时用startswith筛选遇错,如何解决?
直接调用https://graph.microsoft.com/v1.0/sites?$filter=startswith(displayName, 'C')报错的核心原因是:/sites根端点不支持直接枚举租户下所有站点,且该端点对$filter的支持存在限制,因此返回Cannot enumerate sites错误。
以下是可行的解决方法:
检查权限配置
确保你的应用已获取Sites.Read.All或Sites.ReadWrite.All的应用权限,且已由全局管理员完成权限同意——权限不足会直接限制站点枚举操作。使用Search API替代实现
改用Graph的搜索端点来完成按displayName前缀筛选站点的需求,这是更可靠的方案。请求示例:POST https://graph.microsoft.com/v1.0/search/query Content-Type: application/json { "requests": [ { "entityTypes": ["site"], "query": { "queryString": "displayName:C*" } } ] }该请求会返回所有displayName以
C开头的站点,支持通过通配符*匹配前缀。特定站点集的筛选(可选)
如果仅需筛选某个根站点下的子站点,可调用https://graph.microsoft.com/v1.0/sites/{site-id}/sites?$filter=startswith(displayName, 'C')——这个端点支持startswith过滤,但仅局限于指定站点的子站点范围。
内容的提问来源于stack exchange,提问作者Muhammed Yaseen
相关产品推荐
相关产品推荐

