API Microsoft Calendar Graph: идентификатор события не передается между пользователями

В настоящее время я работаю над Microsoft Calendar Graph API, и у меня возникли некоторые проблемы при попытке синхронизировать события.

В основном у меня есть 2 пользователя в моем веб-сервисе: у них обоих есть адрес Outlook. Пользователь A создает событие в моем веб-сервисе и добавляет пользователя B в качестве участника. Затем событие отправляется в Outlook с помощью REST API. Он создается в календаре Outlook пользователя A, и пользователь B получает приглашение в Outlook, и событие также создается в его календаре Outlook.

Теперь в моем веб-сервисе, когда событие создается, я получаю Microsoft ID события и сохраняю его в своей базе данных. Таким образом, когда я хочу синхронизировать события между календарем Outlook и моим календарем, все, что я делаю, это извлекаю все события Outlook, проверяю их идентификаторы и смотрю, хранятся ли они в моей базе данных: если они есть, то событие уже существует в моей сети service, если их нет, то я создаю событие в своем веб-сервисе.

У меня проблема в том, что когда я пытаюсь получить события Outlook от пользователя B, идентификатор события отличается от того, который я сохранил ранее, и поэтому создается дубликат, который мне не нужен.

По сути, событие в календаре Outlook пользователя A и календаре Outlook пользователя B имеет разные идентификаторы. Я не понимаю, в чем смысл этого, потому что они одинаковы, тот, что в календаре Outlook пользователя B, является просто приглашением к календарю Outlook пользователя A.

Мой вопрос: есть ли способ обойти это? Есть ли какие-либо идентификаторы, которые используются пользователями в Outlook / Office365? Большое спасибо !


person iddys    schedule 16.06.2017    source источник


Ответы (2)


Именно для этого и предназначено свойство iCalUId. id по своей конструкции отличается, так как это своего рода «первичный ключ» для базы данных почтовых ящиков пользователя. iCalUId должен быть одинаковым во всех календарях.

Из https://developer.microsoft.com/en-us/graph/docs/api-reference/v1.0/resources/event:

iCalUId - String - Уникальный идентификатор, который используется всеми экземплярами события в разных календарях.

person Jason Johnston    schedule 19.06.2017

AFAIK не имеет свойства, которое было бы уникальным и постоянным для разных почтовых ящиков. Вы можете добавить настраиваемые свойства к событиям и убедитесь, что значение свойства уникально и постоянно. Это потребует от вас возможности записывать события пользователя A.

person RasmusW    schedule 16.06.2017