首页 > 解决方案 > 如何增加 Microsoft Graph API 订阅限制?

问题描述

我还没有找到一种使用图表来订阅所有用户更改的方法,看起来这是不可能的

所以我开始单独订阅每个人,理想情况下我最终希望所有更新来自日历、电子邮件和联系人,但我从日历开始。

该代码仅适用于我的用户,但是当我尝试为每个人(大约 300 个用户)订阅时,我遇到了一个严格的限制,即7 个​​订阅,因为进一步的请求以一般Bad Request状态失败。

在官方文档https://developer.microsoft.com/en-us/graph/docs/api-reference/v1.0/resources/webhooks中它说:

限制 某些限制适用,超过时可能会产生错误:

1) 最大订阅配额

  • 每个应用程序:50,000 总订阅
  • 每个租户:所有应用程序共有 35 个订阅
  • 每个应用和租户组合:总共 7 个订阅

Tenant 似乎指的是一个实际的活动目录,因此我们限制为每个应用程序 7 个,或总共 35 个。

将用户分成多个域的 Active Directory 的可能性为零,即使同时使用多个应用程序来做同样的事情似乎也很奇怪,这些限制对我来说毫无意义。

有没有办法增加这些微小的限制?

我正在订阅,users/$email/events所以我发布到https://graph.microsoft.com/v1.0/subscriptions

{
   "changeType": "created,updated,deleted",
   "notificationUrl": "https://webhooks.mydomain.com/my/endpoint",
   "resource": "users/$email/events",
   "expirationDateTime":"2018-05-12T16:00:00.9356913Z",
   "clientState": "my-super-secret-identifier"
}

只要我想要 <=7 个订阅,它就可以很好地工作。我还订阅了 root /users,看看这是否会给我所有的更改,这意味着我只能订阅 6 个单独的日历。

我正在使用官方的 PHP 库,但假设/希望没关系。

标签: microsoft-graph-api

解决方案


正如 Jason 在评论中所说,问题中的限制应该只适用于 Active Directory 资源,而不是用户级别,文档现在已更改:

Azure AD 资源限制

某些限制适用于基于 Azure AD 的资源(用户、组),超过时可能会产生错误:

最大订阅配额:

  • 每个应用程序:50,000 总订阅
  • 每个租户:总共 35 个订阅
  • 跨所有应用程序每个应用程序和租户组合:总共 7 个订阅

无论是建议的力量导致了问题,还是某个我不知道的地方的临时错误,但互联网之神对我微笑,我的代码现在可以工作了;即使我没有改变它。

也许删除和添加权限对我有帮助?没有把握。

至少文档现在是。


推荐阅读