为多个资源上的更改通知创建订阅

时间:2020-11-12 15:57:16

标签: microsoft-graph-api microsoft-graph-calendar

我们有一个应用程序,可以在日历上创建订阅以进行更改。

https://graph.microsoft.com/v1.0/subscriptions
{
   "changeType": "created,updated,deleted",
   "notificationUrl": "https://example.com/notifications",
   "resource": "users('room-01@example.com')/events",
   "expirationDateTime":"2020-11-14T14:56:29.000Z",
   "clientState": "Test"
}

这按预期工作。
但是现在我们对多个房间的日历事件感兴趣。
由于我们有许多房间(超过300个房间),因此我们希望一次将我们的应用程序订阅到许多日历中。 如果我们为每个房间创建单独的订阅,则可能会达到Microsoft的订阅限制。 我们希望订阅组中的所有资源:

https://graph.microsoft.com/v1.0/subscriptions
{
   "changeType": "created,updated,deleted",
   "notificationUrl": "https://example.com/notifications",
   "resource": "groups('383efd01-29b6-4817-9a9c-8faf61a1e06a')/events",
   "expirationDateTime":"2020-11-14T14:56:29.000Z",
   "clientState": "Test"
}

这不起作用... 也许还有另一种设置资源的方法,通配符? 希望有人能帮助我们或采取其他替代方法。

1 个答案:

答案 0 :(得分:0)

  • 为了避免出现这种限制情况,我会尝试实现较小的规模(例如50个房间)而不是300个以上的实现。 Microsoft Graph端点通常是高性能的。 Microsoft 365背后的基础结构将根据需求分配计算资源,以确保高流量水平的时间段不会导致性能下降。除了动态扩展资源外,Microsoft使用的另一种机制是节流。如果发出太多请求,则将开始返回HTTP 429(太多请求)响应代码。这是the throttling guidance
  • 在同一行中,您可能需要考虑Microsoft Graph Data Connect并查看它是否适合您的情况。如果是,那么您可以理解,它允许您以可扩展的方式获得与Microsoft Graph API可用的数据相同的数据(当前只有有限的子集可用)。