Изменения между двумя последовательными вызовами Microsoft Graph API не учитываются - PullRequest
0 голосов
/ 04 октября 2019

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

Я использую версию Microsoft-графа 1.17.0 (Опубликованные данные: пятница, 16 августа,2019 (16.08.2009)) для механизма извлечения / отправки событий из / в Office365 / календаря Outlook в / из моего веб-приложения. В качестве языка программирования я использую C # (отправляя HTTP-запрос в Microsoft Graph API).

На самом деле у меня есть Window Service, который запускается каждые 2 минуты и выполняет вызовы Microsoft Graph API на основе deltalink . Deltalink используется для отслеживания между двумя запросами. Итак, через 2 минуты сервис звонит и сообщает API Graph «дай мне все изменения, внесенные в события для конкретного календаря с момента последней синхронизации».

В моем веб-приложении есть объект, связанный с событием из календаря. Если в событие в календаре вносятся изменения, я хочу внести изменения и в свою сущность. Я хочу сохранить синхронизацию между этими двумя объектами (событие календаря и объект из моего веб-приложения). Например: если я создаю сущность в своем приложении, в календаре будет создано событие. Если я удаляю сущность из моего приложения, событие также будет удалено, и наоборот. Если я создаю событие из календаря, оно будет импортировано в мое приложение ...

Моя проблема заключается в следующем. Если я создал сущность в своем веб-приложении, событие создается в календаре, и все хорошо. Но если я немедленно удалю событие из календаря, это не повлияет на объект из моего веб-приложения. Поскольку события добавляются и немедленно удаляются (между двумя синхронизациями), создается впечатление, что эта ситуация не рассматривается как действие в календаре и данные не отправляются обратно в мою службу.

Если событие созданои затем удаляется, как будто ничего не произошло.

Если я хочу, чтобы этот механизм заработал, мне нужно подождать, чтобы завершить синхронизацию, поэтому мне придется ждать 2 минуты, пока служба не запустится снова,и после этого удалите событие, чтобы внести изменения в мою сущность.

Если есть кто-то, у кого есть идея, как мне справиться с этой ситуацией, чтобы знать, когда событие создано и немедленно удалено, я будубыть благодарным. Таким образом, любой совет может помочь. Спасибо!

1 Ответ

0 голосов
/ 29 октября 2019

Вместо того, чтобы использовать Delta для этого. Вы всегда можете использовать Уведомления об изменениях, доставляемые через веб-крючок, который может вызывать ваш веб-API.

https://docs.microsoft.com/en-us/graph/webhooks

В этом сценарии вы можете подписаться на создание и удаление событий, и веб-крюк будет срабатывать и позволятьты знаешь. В зависимости от количества создаваемых событий вы можете обнаружить, что это более оптимально, чем опрос каждые 2 минуты.

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