问题描述
https://graph.microsoft.com/v1.0/subscriptions
{
"changeType": "created,updated,deleted","notificationUrl": "https://example.com/notifications","resource": "users('[email protected]')/events","expirationDateTime":"2020-11-14T14:56:29.000Z","clientState": "Test"
}
这按预期工作。
但是现在我们对多个房间的日历事件感兴趣。
由于我们有许多房间(超过300个房间),因此我们希望一次将我们的应用程序订阅到许多日历中。
如果我们为每个房间创建单独的订阅,则可能会达到Microsoft的订阅限制。
我们希望订阅组中的所有资源:
https://graph.microsoft.com/v1.0/subscriptions
{
"changeType": "created,"resource": "groups('383efd01-29b6-4817-9a9c-8faf61a1e06a')/events","clientState": "Test"
}
这不起作用... 也许还有另一种设置资源的方法,通配符? 希望有人能帮助我们或采取其他替代方法。
解决方法
- 为了避免出现这种限制情况,我会尝试实现较小的规模(例如50个房间)而不是300个以上的实现。 Microsoft Graph端点通常是高性能的。 Microsoft 365背后的基础结构将根据需求分配计算资源,以确保高流量水平的时间段不会导致性能下降。除了动态扩展资源外,Microsoft使用的另一种机制是节流。如果发出太多请求,则将开始返回HTTP 429(太多请求)响应代码。这是the throttling guidance。
- 在同一行中,您可能需要考虑Microsoft Graph Data Connect并查看它是否适合您的情况。如果是,那么您可以理解,它允许您以可扩展的方式获得与Microsoft Graph API可用的数据相同的数据(当前只有有限的子集可用)。