Я выполнил те же шаги, которые упомянуты в этот вопрос, чтобы отфильтровать события push-уведомлений на основе настраиваемых свойств, установленных надстройкой Outlook.
Ниже приведена ссылка на ресурс, которую я использовал при подписке на push-уведомления.
https://outlook.office.com/api/v2.0/me/events/?$filter=SingleValueExtendedProperties%2FAny(ep%3A%20ep%2FPropertyId%20eq%20'String%20{00020329-0000-0000-C000-000000000046}%20Name%20cecp-7e248e5e-204e-4e2b-aa0f-788af20fc21c'%20and%20ep%2FValue%20ne%20null)
Он фильтрует элементы календаря, у которых есть настраиваемые свойства, установленные надстройкой, независимо от того, какое это настраиваемое свойство. Посмотрев на эту ссылку на ресурс, мы могли бы сказать, что нигде не упоминали имя настраиваемого свойства. Но моя надстройка устанавливает несколько настраиваемых свойств для элемента календаря. Я хочу отфильтровать все элементы календаря, у которых есть определенное настраиваемое свойство. Например, моя надстройка устанавливает для любого из указанных ниже настраиваемых свойств календарь на основе бизнес-входа в систему.
Пользовательское свойство 1:
var item = Office.context.mailbox.item;
item.loadCustomPropertiesAsync((result) => {
const props = result.value;
props.set("my_prop_one", "test_value_one");
props.saveAsync((saveResult) => console.log("Successfull"));
});
Пользовательское свойство 2:
var item = Office.context.mailbox.item;
item.loadCustomPropertiesAsync((result) => {
const props = result.value;
props.set("my_prop_two", "test_value_tw");
props.saveAsync((saveResult) => console.log("Successful"));
});
Теперь я хочу отфильтровать все элементы календаря, у которых есть настраиваемое свойство my_prop_one
.
ИЗМЕНИТЬ 1:
Как предложил @Jason Johnston в одном из комментариев, я проверил имя свойства и его GUID с помощью MFCMapi. И имя свойства, и его значения GUID верны.
Данные MFCMapi настраиваемого свойства meetingsetby
.
Затем я собрал данные из MFCMapi и подготовил приведенный ниже URL-адрес для фильтрации элементов календаря, которые имеют настраиваемое свойство meetingsetby
и его значение webex
.
https://outlook.office.com/api/v2.0/Me/Events?$filter=SingleValueExtendedProperties%2FAny(ep%3A%20ep%2FPropertyId%20eq%20'String%20{00020329-0000-0000-C000-000000000046}%20Name%20meetingsetby'%20and%20ep%2FValue%20eq%20'webex')
А ниже - ответ от postman
, когда я выполняю вызов get, используя указанный выше URL.
Как видите, в ответе есть пустой список, хотя есть один элемент календаря с настраиваемым свойством meetingsetby
и значением webex
.
Затем я установил SingleValueExtendedProperty
на элемент календаря с помощью Outlook Rest API, как описано в этот пост. Ниже приведен образец данных запроса,
Данные MFCMapi SingleValueExtendedProperty
Затем я собрал данные из MFCMapi и подготовил приведенный ниже URL-адрес для фильтрации элементов календаря, для которых установлено singleValueExtendedProperty
на предыдущем шаге.
https://outlook.office.com/api/v2.0/Me/Events?$filter=SingleValueExtendedProperties%2FAny(ep%3A%20ep%2FPropertyId%20eq%20'String%20{6666AA44-4659-4830-9070-00047EC6AC6E}%20Name%20RestApiSingleValueExtendedProperty'%20and%20ep%2FValue%20eq%20'Set this property using REST API')
А ниже - ответ от postman
, когда я выполняю вызов get, используя указанный выше URL.
Как видите, я могу успешно фильтровать элементы календаря с помощью singleValueExtendedProperty
. Но мое требование - фильтровать элементы календаря, у которых есть определенные настраиваемые свойства, установленные моей веб-надстройкой Outlook.
Любые предложения / ответы будут более чем приветствоваться.