我对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
中的个人帐户有一些限制?
答案 0 :(得分:1)
使用/me/events
时,您将转到用户的默认日历(按the docs)。对于您的情况,您需要枚举用户的日历(GET /me/calendars
),然后使用资源/me/calendars/{calendar-id}/events
订阅每个人的事件集合。