Подписки Microsoft Graph - Отсутствие уведомлений о событиях календаря

Мы используем мультитенантное приложение. Мы создали подписку для прослушивания событий календаря для определенного пользователя, но не получаем уведомления.

Пользователь принял следующие области: Calendars.Read Calendars.ReadWrite Calendars.Read.Shared Calendars.ReadWrite.Shared offline_access User.Read.All

Когда мы вызываем POST https://graph.microsoft.com/v1.0/subscriptions BODY:

{  
"resource": "/users/31c61efc-bc28-4552-9f0d-1a8735767c4e/calendars/AAMkAGRjZjY3OGRmLWU3MjAtNGExYy1hOTk0LTNkNjExOWVhZmYyNQBGAAAAAAD3yBF0B84VRJLe9CCZ4-ajBwDf5J1F10FqQ6VkC14neUWZAAAAAAEGAADf5J1F10FqQ6VkC14neUWZAABEL_2XAAA\u003d/events",  
"changeType": "created,updated,deleted",  
"clientState": "XXXXXX",  
"notificationUrl": "https://XXXXX.ngrok.io/notification/event",  
"expirationDateTime": "2019-05-31T14:42:08.651Z"
}

Затем вызывается notificationUrl, и мы получаем токен проверки: Validation: Testing client application reachability for subscription Request-Id: 9d020355-7589-4485-ba29-62d1ec899723

Но когда мы входим в учетную запись 31c61efc-bc28-4552-9f0d-1a8735767c4e и обновляем или создаем событие, уведомление не отправляется.

Если мы вызовем GET https://graph.microsoft.com/v1.0/subscriptions, подписка будет создана:

{
    "@odata.context": "https://graph.microsoft.com/v1.0/$metadata#subscriptions",
    "value": [
        {
            "id": "b92d909e-b1b5-49b8-af54-74b7956d6565",
            "resource": "/users/31c61efc-bc28-4552-9f0d-1a8735767c4e/calendars/AAMkAGRjZjY3OGRmLWU3MjAtNGExYy1hOTk0LTNkNjExOWVhZmYyNQBGAAAAAAD3yBF0B84VRJLe9CCZ4-ajBwDf5J1F10FqQ6VkC14neUWZAAAAAAEGAADf5J1F10FqQ6VkC14neUWZAABEL_2XAAA=/events",
            "applicationId": "XXXX",
            "changeType": "created,updated,deleted",
            "clientState": null,
            "notificationUrl": "https://XXXX.ngrok.io/notification/event",
            "expirationDateTime": "2019-05-31T14:42:08.651Z",
            "creatorId": "31c61efc-bc28-4552-9f0d-1a8735767c4e"
        }
    ]
}

Наблюдая за вызовами ngrok, нет ошибочного вызова конечной точки событий уведомления.

Есть ли какой-нибудь журнал консоли, который мы можем проверить, чтобы понять, в чем может быть проблема?

Мы пытались создать подписки для разных аккаунтов, но безуспешно. Мы также пытались подписаться на /me/events


person Carla Barbará    schedule 28.05.2019    source источник


Ответы (1)


Просто интересно, может ли это быть причиной, но календарь id, на который вы подписаны, заканчивается на \u003d вместо =. Кодирование. Возможно, это не так, но для меня он хорошо работает с этим.

Надеюсь, что это именно так! JS

person jstougas    schedule 29.05.2019
comment
Иногда я получаю уведомления, но не всегда. Например, вчера днем ​​я довольно часто получал уведомления, а сегодня утром ... ничего. Я не вносил никаких изменений в код. Я даже не перезапускал сервер. - person Prashant Saraswat; 29.05.2019
comment
У меня была такая же проблема, как вы упомянули @PrashantSaraswat. Вчера вечером пришла куча уведомлений, а сегодня ничего. Может быть, на стороне Microsoft. - person Carla Barbará; 30.05.2019
comment
Возможно ли, что у вас ngrok проблема с конфигурацией? Возможно ли, что вы перезапустили его, и теперь он отображается на другом URL-адресе, поэтому ваша подписка больше не работает? - person jstougas; 30.05.2019
comment
@jstougas Я почти уверен, что использую правильный ngrok URL. Теперь я перешел на Localtunnel, чтобы иметь возможность определять фиксированный хост и избегать создания разных подписок каждый раз, когда мне нужно перезапускать ngrok. Иногда я получаю уведомления, а иногда просто нет. Я ничего не изменил со своей стороны. - person Carla Barbará; 30.05.2019
comment
@jstougas Я почти уверен, что это не проблема ngrok. Абсолютно ничего не изменилось на моей стороне от одного дня к другому. Я просто перестал получать уведомления. - person Prashant Saraswat; 30.05.2019