Идентификаторы общего календаря Microsoft Graph API несовместимы между пользователями
Мое приложение позволяет пользователям планировать события в общих календарях и позволяет другим пользователям потенциально перепланировать или отменить эти события. Я прошу Calendar.ReadWrite.Shared
разрешение, чтобы включить это.
Похоже, что если два пользователя имеют доступ к общему календарю, значение идентификатора, возвращенное из GET /me/calendars
отличается для двух пользователей. Существует ли единообразное уникальное значение идентификатора, которое можно использовать для сопоставления общих календарей между пользователями?
2 ответа
К сожалению, идентификатор общей папки календаря будет отличаться. По сути, происходит то, что, когда календарь передается делегату, копия этого календаря создается в почтовом ящике делегата (вот почему вы можете увидеть его в /me/calendars
). Затем, когда он передается второму делегату, в почтовом ящике этого второго делегата создается другая копия. Поскольку они находятся в разных папках в разных почтовых ящиках, их идентификаторы разные.
Вы ищете iCalUId
имущество.
Это уникальный идентификатор, назначаемый каждому событию, которое сохраняется даже при доступе к календарям и службам. Например, если вы отправили приглашение пользователю GMail, у этого участника будет такой же iCalUId
в Google Event.
Я использую для этого календарь учетной записи с предоставленными привилегиями другим людям. Так что я могу получить доступ к этому звонку из каждой учетной записи с
/{$user}/calendar/{$cal}/
Также я могу синхронизировать с дельтой:
/{$user}/calendarView/delta?
Но это работает только для "одного" календаря, на данный момент нет "дельты" для эксплицитного календаря.