将Outlook REST API项目ID转换为MAPI EntryID

时间:2017-02-14 07:53:18

标签: json rest outlook exchange-server mapi

是否有官方支持的方式将项目ID从Outlook REST API转换为MAPI EntryID?

我在谈论" Id"对于邮箱端点上的http GET的json响应中的项目返回的字段,如下所示:

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

Id字段包含base64值。当我将其转换为十六进制并将其与同一项目的PR_ENTRY_ID值进行比较时,例如使用MFCMAPI,我可以发现EntryID包含在Id字段的十六进制版本中。

是否有官方文档如何在id格式之间进行转换?

还是要调用的API?更喜欢本地转换函数以避免额外的REST往返。

感谢任何提示 SvenC

2 个答案:

答案 0 :(得分:4)

您对Microsoft Graph API的查询可以指定您要包含PR_ENTRYID或其他MAPI属性。以下是Microsoft的singleValueLegacyExtendedProperty {/ 3}}。

例如,如果您想要获取邮件的页面并添加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'
  4. 请注意,上面的示例使用#3,而0x0FFF是propertyTag PR_ENTRYID的每个official documentation

答案 1 :(得分:0)

  

是否有官方支持的方式将项目ID从Outlook REST API转换为MAPI EntryID?

不,office.js API没有任何东西可以将REST / EWS ID转换为PR_ENTRY_ID

  

是否有官方文档如何在id格式之间进行转换?

显然,上文没有任何文件

  

还是要调用的API?更喜欢本地转换函数以避免额外的REST往返。

是的,有人要求检索(不转换)IMessage Id,这正是您所做的...... RESTful或EWS请求。使用这些请求,您可以获得IMessage属性,包括PR_ENTRY_ID。我真的不明白你将要用它做什么?无论如何,必须使用EWS / REST Id完成对消息的任何请求。好吧,这可能与你的消息操作有关。