Microsoft Graph webhooks-订阅用户日历

时间:2018-11-11 11:49:29

标签: microsoft-graph

我对Microsoft Graph的{​​{1}} Webhook订阅有问题。我要做的是订阅所有用户日历。

首先,我使用个人Microsoft帐户在https://apps.dev.microsoft.com中创建了新应用。 然后在我的应用中,我使用访问令牌订阅/me/events通知:

/me/events

我的POST https://graph.microsoft.com/beta/subscriptions { "changeType": "created,updated", "notificationUrl": "https://xxxxx.ngrok.io/notification-url", "resource": "/me/events", "expirationDateTime": "2018-11-14T09:40:10.933Z", "clientState": "xxxx-xxxx-xxxx-xxxx" } 收到验证请求,我的应用使用notificationUrl和验证令牌对此请求做出响应。之后,POST请求将我的订阅返回给我:

200 OK

此订阅可以正常使用,但仅适用于Outlook中的一个默认日历。如果我创建,更新帐户中存在的其他日历中的事件,则不会收到任何通知。

这可能是问题所在,我使用的资源名称({ "@odata.context" : "https://graph.microsoft.com/beta/$metadata#subscriptions/$entity", "id" : "2773aa4c-e983-4d15-9236-xxxxxxxx", "resource" : "/me/events", "applicationId" : "d551ec34-8d44-4cc6-9b88-xxxxxxxx", "changeType" : "created,updated", "clientState" : "xxxx-xxxx-xxxx-xxxx", "notificationUrl" : "https://xxxxx.ngrok.io/notification-url", "expirationDateTime" : "2018-11-14T09:40:10.933Z", "creatorId" : "00000000000" } 是错误的还是对/me/events中的个人帐户有一些限制?

1 个答案:

答案 0 :(得分:1)

使用/me/events时,您将转到用户的默认日历(按the docs)。对于您的情况,您需要枚举用户的日历(GET /me/calendars),然后使用资源/me/calendars/{calendar-id}/events订阅每个人的事件集合。