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

如何用C#的Microsoft Graph API/SDK按创建日期查询SharePoint租户新站点

高效查询SharePoint租户内新建站点/子站点的Graph API实现方法

针对租户站点数量超5万的场景,核心思路是利用Graph API的filter参数基于创建时间范围精准筛选,避免全量枚举。以下分两种场景给出具体实现:

一、租户级查询新建网站集(顶层站点)

直接调用租户级sites端点,通过createdDateTime限定时间区间:

GET https://graph.microsoft.com/v1.0/sites?filter=createdDateTime ge '{上次查询结束时间(ISO 8601 UTC)}' and createdDateTime le '{当前查询时间(ISO 8601 UTC)}'&select=id,displayName,createdDateTime,webUrl
  • 细节说明:
    • 时间格式必须为yyyy-MM-ddTHH:mm:ssZ(如2024-05-20T14:30:00Z),确保时区统一。
    • 使用select参数仅返回必要字段,降低数据传输量。
    • 处理分页:若结果超过100条,需通过响应中的@odata.nextLink遍历所有页。

二、查询网站集内新建子站点

子站点属于网站集下的次级节点,需针对目标网站集单独查询,同样用时间筛选:

GET https://graph.microsoft.com/v1.0/sites/{site-id}/sites?filter=createdDateTime ge '{上次查询该网站集的时间}' and createdDateTime le '{当前查询时间}'&select=id,displayName,createdDateTime,webUrl
  • 优化策略:
    • 仅对上次查询后新建的网站集执行子站点查询,存量网站集可按周期(如每5分钟)轮询,记录每个网站集的查询时间点。
    • 批量处理:通过Graph API的$batch接口批量请求多个网站集的子站点数据,减少HTTP请求次数。

关键注意事项

  • 权限要求:需配置Sites.Read.All(只读)或Sites.ReadWrite.All(读写)应用权限,适合后台定时任务的授权模式。
  • 去重与防遗漏:每次查询结束后,记录当前时间作为下次查询的起始时间,确保时间区间连续无重叠。
  • 性能验证:若时间窗口内结果仍较多,可进一步缩小查询间隔(如调整为3分钟),或结合orderBy=createdDateTime desc优先获取最新站点。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.15 14:20:23