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

如何分页浏览Microsoft Graph更改通知订阅?分页重复异常求助

Graph API订阅分页循环及多字段查询解决方案

分页循环问题的解决办法

遇到nextLink循环返回相同结果的情况,大概率是Graph API分页机制的临时异常或默认参数问题,可通过以下方式解决:

  • 手动指定$top拉取全量数据:订阅列表默认分页大小为20,最大支持$top=100。直接请求 GET /subscriptions?$top=100 就能一次性获取所有22个订阅,跳过分页操作。
  • 手动构造分页请求替代nextLink:若必须分页,不要使用返回的nextLink,而是手动指定$skip参数:
    1. 第一次请求:GET /subscriptions?$top=20
    2. 第二次请求:GET /subscriptions?$skip=20&$top=20
      这样即可拿到剩余的2个订阅,规避可能异常的skiptoken。
  • 验证订阅状态:确认所有22个订阅均为活跃状态(未过期、未被删除),若存在失效订阅,Graph API可能不会返回,导致实际可返回数据仅20个,看似循环。可通过 $filter=status eq 'enabled' 过滤活跃订阅验证。

通过非ID字段查询订阅的方法

Graph API支持用$filter参数对订阅的非ID字段进行查询,常用场景示例:

  • 按通知URL过滤:
    GET /subscriptions?$filter=notificationUrl eq 'https://your-webhook-endpoint.com/callback'
    
  • 按资源类型过滤:
    GET /subscriptions?$filter=resource contains '/users/'
    
  • 按过期时间范围过滤:
    GET /subscriptions?$filter=expirationDateTime gt 2024-12-31T00:00:00Z
    
  • 按变更类型过滤:
    GET /subscriptions?$filter=changeType eq 'created,updated'
    

注意:$filter支持eq、ne、gt、lt、contains等运算符,resource、notificationUrl、expirationDateTime、changeType等常用字段均可过滤。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.22 05:24:57