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

使用Microsoft Graph API按displayName/name查询Sites失败如何解决

问题原因

  1. /sites根路径的$filter参数当前不支持对name、displayName属性的过滤操作,仅支持对id、sharepointIds等少数字段过滤,所以此前的$filter请求返回BadRequest属于正常情况。
  2. 此前的$search用法不符合接口要求:站点全局搜索的$search无需指定匹配字段,且必须同时传入$count=true查询参数,请求头中添加ConsistencyLevel: eventual,否则会返回空结果或报错。

可行解决方案

方案一:通过关联Microsoft 365组查询(推荐,适配Teams团队站点场景,准确率最高)

每个Teams团队对应一个Microsoft 365组,二者displayName完全一致,通过组查询站点不会匹配到无关的SharePoint站点。

  • 第一步:通过团队displayName查询对应M365组ID
    请求示例:
    GET https://graph.microsoft.com/v1.0/groups?$filter=displayName eq 'IT-Team'&$select=id
    
    权限要求:Group.Read.All 或更高权限
  • 第二步:通过组ID查询对应团队站点信息
    请求示例:
    GET https://graph.microsoft.com/v1.0/groups/{替换为上一步获取的组ID}/sites/root?$select=id,name,displayName,sharepointIds
    
    返回报文中的id字段即为所需的SiteId。

方案二:直接搜索站点

需同时满足以下请求要求:

  • 请求头添加:ConsistencyLevel: eventual
  • 查询参数添加$count=true
  • $search参数直接传入搜索关键词,无需指定匹配字段
    请求示例(已做URL编码):
GET https://graph.microsoft.com/v1.0/sites?$search=%22IT-Team%22&$count=true&$select=id,name,displayName

权限要求:Sites.Read.All 或更高权限

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.29 05:54:00