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

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

Похоже, что если два пользователя имеют доступ к общему календарю, значение идентификатора, возвращенное из GET /me/calendars отличается для двух пользователей. Существует ли единообразное уникальное значение идентификатора, которое можно использовать для сопоставления общих календарей между пользователями?

2 ответа

К сожалению, идентификатор общей папки календаря будет отличаться. По сути, происходит то, что, когда календарь передается делегату, копия этого календаря создается в почтовом ящике делегата (вот почему вы можете увидеть его в /me/calendars). Затем, когда он передается второму делегату, в почтовом ящике этого второго делегата создается другая копия. Поскольку они находятся в разных папках в разных почтовых ящиках, их идентификаторы разные.

Вы ищете iCalUId имущество.

Это уникальный идентификатор, назначаемый каждому событию, которое сохраняется даже при доступе к календарям и службам. Например, если вы отправили приглашение пользователю GMail, у этого участника будет такой же iCalUId в Google Event.

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

/{$user}/calendar/{$cal}/

Также я могу синхронизировать с дельтой:

/{$user}/calendarView/delta?

Но это работает только для "одного" календаря, на данный момент нет "дельты" для эксплицитного календаря.

Другие вопросы по тегам