Допустим, у меня есть в моей надстройке Outlook (с использованием Office.js) следующий код, работающий в форме создания встречи:
const item = Office.context.mailbox.item;
item.loadCustomPropertiesAsync((result) => {
const props = result.value;
const testProp = props.get("my_prop");
console.log("CUSTOM_PROP", testProp);
props.set("my_prop", "test_value");
props.saveAsync((saveResult) =>
console.log("SAVE_CUSTOM_PROP", saveResult));
});
Я вижу, что на самом деле это сохраняется.
А теперь несколько вопросов по этим настраиваемым свойствам:
Но связаны ли они как-то с расширенными свойствами?
Доступны ли эти свойства каким-либо образом через Outlook REST API или Microsoft Graph?
Могу ли я создать подписку на push-уведомления с помощью Microsoft Graph с фильтром на основе этих свойств? (Я знаю, что могу на основе расширенных свойств)
Если ответ на вопрос выше - «нет», а настраиваемые свойства доступны только через надстройку, в которой они созданы, есть ли способ создать расширенное свойство для события из надстройки, даже если оно не сохранено ?
Чтобы объяснить, почему я спрашиваю, я создаю надстройку, которая позволяет «связать» встречу с нашей сторонней системой и синхронизировать эту встречу с нашим объектом.
Поэтому, когда в форме создания сообщения нажимается кнопка, я:
- сохраните встречу и получите
event-id
, - сохраните его в нашей системе, чтобы синхронизировать нашу систему с назначением.
- добавить расширенное свойство в нашу систему с помощью Microsoft Graph для этой встречи
При первом использовании надстройки пользователь аутентифицируется, и я создаю подписку на push-уведомления для событий с нашим расширенным свойством, чтобы выполнить синхронизацию из Outlook в нашу систему.
Он отлично работает в OWA, но теперь, когда нам действительно нужна поддержка рабочего стола, возникают две основные проблемы:
Outlook для Mac: нет метода
saveAsync
, поэтому нет возможности получитьid
события, я думал о добавлении некоторого настраиваемого свойства, а затем позволить push-уведомлению проинформировать нашу систему о том, что было создано событие, которое необходимо синхронизировать с нашей системой.Outlook для ПК: есть метод
saveAsync
, но обратный вызов выполняется, когда встреча сохраняется локально, а не на сервере, поэтому я не могу знать, когда именно было создано событие, и могу выполнить несколько вызовов Microsoft Graph для этого мероприятие.
Ответ на мой первый вопрос и / или любые советы по поводу моего варианта использования будут более чем приветствоваться.