Microsoft Graph webhooks - подписаться на пользовательские календари - PullRequest
0 голосов
/ 11 ноября 2018

У меня проблема с моей Microsoft Graph подпиской на webhook на /me/events. Я хочу подписаться на все пользовательские календари.

Сначала я создал новое приложение в https://apps.dev.microsoft.com, используя мою личную учетную запись Microsoft. Затем в моем приложении я подписываюсь на /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"
}

My notificationUrl получает запрос на проверку, на который мое приложение отвечает 200 OK и токеном проверки. После этого запрос POST возвращает мне мою подписку:

{
  "@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"
}

Эта подписка работает нормально, но только для одного календаря по умолчанию в Outlook. Я не получаю никаких уведомлений, если я создаю, обновляю события в любых других календарях, существующих в моей учетной записи.

В чем может быть проблема, я использую неправильное имя ресурса (/me/events) или это какое-то ограничение для личных учетных записей в Microsoft Graph?

1 Ответ

0 голосов
/ 12 ноября 2018

Когда вы используете /me/events, вы переходите к календарю по умолчанию для пользователя (за документы ). В вашем случае вы хотите перечислить пользовательские календари (GET /me/calendars), а затем подписаться на коллекцию событий каждого, используя ресурс /me/calendars/{calendar-id}/events.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...