Невозможно сохранить собрание в качестве черновика в Outlook для Mac с помощью Office API JS

Исходный номер КБ:   4505745

Симптомы

Microsoft Outlook для Mac не поддерживает saveAsync на собрании в режиме Compose. Outlook надстройки не могут получить идентификатор элемента. Это означает, что надстройки не могут однозначно идентифицировать и общаться с microsoft Exchange для обновления или прослушивания изменений в элементе.

Обходной путь

Чтобы решить эту проблему, можно установить расширенное свойство(customProperty: Office API JS) для элемента. Расширенное свойство является частью элемента и будет доступно на Exchange, как только элемент будет отправлен. Поэтому надстройка может запрашивать или прослушивать элементы с расширенным набором свойств.

Чтобы установить свойство, выполните следующие действия:

  1. Выберите один из следующих наборов API:

    1. EWS
    2. REST
    3. Microsoft Graph
  2. Получите допустимый маркер для каждого набора API:

    1. EWS: Используйте getCallbackScopedAsync
    2. REST: Используйте getCallbackScopedAsync с помощью options.isRest = true
    3. Graph. Использование маркера onBehalfOf
  3. Запрос или прослушивание событий календаря:

    1. EWS: Подпишитесь на созданное событие
    2. REST: Подпишитесь на созданное уведомление и фильтр на основе расширенного свойства
    3. Graph: Подпишитесь на созданное уведомление и фильтр на основе расширенного свойства
  4. Найдите соответствующее расширенное свойство в Exchange:

    1. EWS:

      ExtendedFieldURI {PropertySet = PS_PUBLIC_STRINGS, PropertyName = <add-in id from manifest> cecp-}

    2. REST/Graph:

      SingleValueExtendedProperties {PropertyId = String {00020329-0000-0000-c0000-00000000000046} Name <add-in id from manifest> cecp-}

  5. При успешной подписке используйте уведомление, отправленное на веб-сайт, чтобы обновить его с помощью itemId.