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

使用Graph API能否按包含指定文本的webUrl过滤列表或文档库项?

问题原因

Microsoft Graph中,webUrl属于派生计算属性,这类属性并非存储在SharePoint列表的底层数据中,而是在请求时动态生成的,因此默认不支持通过$filter进行筛选,这就是你使用contains(webUrl,'1808569')时返回错误的原因。

可行解决方案

1. 使用$search替代筛选

如果你的文档库已开启搜索功能,可以通过$search参数匹配包含指定关键词的项($search会对所有可搜索属性进行匹配,包含webUrl):

GET https://graph.microsoft.com/v1.0/sites/{site-id}/lists/{library-id}/items?$search='1808569'

2. 客户端本地筛选

如果文档库中的项数量不大,可以先请求所有项,再在客户端代码中过滤webUrl包含目标文本的条目。示例(JavaScript):

// 假设已通过Graph API获取到items数组
const targetItems = items.filter(item => item.webUrl?.includes('1808569'));

3. 自定义列同步(精准服务端筛选)

如果需要在服务端实现精准的webUrl筛选,可以:

  • 在文档库中添加一个文本类型的自定义列(比如命名为ItemUrl)
  • 通过Power Automate流或SPFx扩展,将每个项的webUrl值同步到这个自定义列中
  • 之后就可以对自定义列使用$filter:
    GET https://graph.microsoft.com/v1.0/sites/{site-id}/lists/{library-id}/items?$filter=contains(ItemUrl,'1808569')
    

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.05 09:41:00