Поделиться через


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

Исходный номер базы знаний: 4505745

Симптомы

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

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

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

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

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

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

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

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

    1. EWS:

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

    2. REST/Graph:

      SingleValueExtendedProperties { PropertyId = String {00020329-0000-0000-c000-000000000046} Имя cecp-add-in< id из manifest>}

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