2017-02-14 57 views
2

Есть ли официально поддерживаемый способ преобразования идентификаторов объектов из API Outlook REST в MAPI EntryID?Преобразовать идентификатор объекта REST API Outlook в MAPI EntryID

Я говорю о поле «Id» возвращается для элементов в ответ JSon из НТТРА GET на конечной точке почтового ящика, как так:

https://outlook.office365.com/api/v2.0/me/messages

поле Id содержит значение base64. Когда я конвертирую его в шестнадцатеричный и сравниваю его с значением PR_ENTRY_ID того же элемента, например. с MFCMAPI, я могу найти, что EntryID содержится в шестнадцатеричной версии поля Id.

Есть ли официальная документация, как конвертировать между форматами id?

Или API для звонка? Предпочитаете функции локального преобразования, чтобы избежать дополнительных обращений REST.

Спасибо за любые подсказки SvenC

ответ

0

есть официально поддерживаемый способ преобразовать запись идентификаторов из API REST Перспективы в MAPI EntryID?

Нет, office.js API не имеет ничего, чтобы преобразовать REST/EWS Id в PR_ENTRY_ID

Есть официальная документация, как конвертировать между форматами ид?

Очевидно, что нет никакой документации, как точки над

или API для вызова? Предпочитаете функции локального преобразования, чтобы избежать дополнительных раундов REST.

Да, есть призывы к изъятию (не конвертировать) Идентификатор сообщения, и это именно то, что вы сделали ... Запросы RESTful или EWS. С этими запросами вы можете получить свойства IMessage, включая PR_ENTRY_ID. Я просто не понимаю, для чего вы собираетесь его использовать? Любые запросы назад к сообщению должны быть выполнены с EWS/REST Id в любом случае. Возможно, это связано с вашими манипуляциями с сообщениями.

+0

Я вижу. Ну, для вас нет ничего, кроме запроса EWS или REST и после отправки его на ваш сервис. На самом деле я впервые встречаю тех, кто использует этот подход. Не могли бы вы рассказать мне, какая работа ваша служба? Причина, если это не деловая тайна. Я предполагаю, что он ищет какое-то свойство в сообщении, установленном надстройкой, и что-то делает для этого сообщения на его основе? Кроме того, он надежный и работает для каждого сообщения? У вас есть икота для этой услуги? Я буду очень благодарен. –

+0

Контекст - это почтовое приложение, которое (грубо) отправляет EntryID в виде тела электронной почты в почтовый ящик контролируемого сервера. Служба на основе MAPI получает этот элемент EntryID и обрабатывает элемент. С EWS мы получаем свойства MAPI по proptag. Не удалось найти, что для REST, но значение Id выглядит почти годным к употреблению. У вас есть детали, чтобы получить PR_ENTRY_ID от REST? Я нашел многообещающий синтаксис с использованием запроса param $ expand [link] (https://msdn.microsoft.com/en-us/office/office365/api/mail-rest-operations). Кажется, отсутствует в Exchange 2016 On-Prem (последний CU4 с декабря 2016 года), который отвечает на вызовы REST v2.0. – SvenC

+0

Извините - нажал в надежде на разрыв строки и отправил незавершенный комментарий - удалил и прочитал комментарий. Возможно, Ex2016 On-Prem REST API делает меньше, чем Office365 – SvenC

3

Ваш запрос к API-интерфейсу Microsoft Graph может указать, что вы хотите включить PR_ENTRYID или другие свойства MAPI. Вот official documentation для singleValueLegacyExtendedProperty от Microsoft.

Например, если вы хотите, чтобы принести страницу ваших сообщений и включают в PR_ENTRYID, вы могли бы сделать GET запрос:

https://graph.microsoft.com/v1.0/me/messages?$expand=singleValueExtendedProperties($filter=id%20eq%20'Binary%200x0FFF')

Без кодирования URL, то $expand утверждение гласит: $expand=singleValueExtendedProperties($filter=id eq 'Binary 0x0FFF')

Есть три действительных синтаксисы для фильтрации свойств MAPI:

  1. 'MapiPropertyType namespaceGuid Name propertyName'
  2. 'MapiPropertyType namespaceGuid Id propertyId'
  3. 'MapiPropertyType propertyTag'

Обратите внимание, что в приведенном выше примере используется # 3, и что 0x0FFF является propertyTag для PR_ENTRYID согласно [MS-OXPROPS] Exchange Server Protocols Master Property List.