Get custom property set in Outlook Add-In via Microsoft Graph
假设我的 Outlook 加载项(使用 Office.js)中有以下代码在date的撰写形式上运行:
1 2 3 4 5 6 7 8 9 | 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 以某种方式访问??这些属性?
我可以使用 Microsoft Graph 和基于这些属性的筛选器创建推送通知订阅吗? (我知道我可以基于扩展属性)
如果上述问题的答案是"否",并且自定义属性只能通过创建它们的加载项访问,有没有办法从加载项为事件创建扩展属性,就算没有保存?
解释我为什么要问 - 我正在创建一个加载项,它允许"连接"与我们的第 3 方系统的date,并使该date与我们的对象保持同步。
所以当在撰写表单上点击一个按钮时,我:
-
保存date并获取
event-id , - 将其存储在我们的系统中,以便从我们的系统同步到date。
- 使用 Microsoft Graph 在我们的系统中为该date添加扩展属性
在首次使用加载项时,用户进行身份验证,然后我使用我们的扩展属性为事件创建推送通知订阅,以便从 Outlook 同步到我们的系统。
它在 OWA 上运行良好,但现在我们确实需要支持桌面,因此出现了两个主要问题:
-
Outlook for Mac:没有
saveAsync 方法,因此无法获取事件的id ,我正在考虑添加一些自定义属性,然后让推送通知通知我们的系统,一个事件已创建,需要与系统同步。 -
Outlook for PC:有
saveAsync 方法,但是当date保存在本地时执行回调,而不是在服务器上,因此我不知道确切的事件是什么时候创建的,我可以做一些 Microsoft Graph 调用该事件。
欢迎回答我的第一个问题和/或任何关于我的用例的提示。
TL;DR;
是的,可以使用 REST API 读取由
您需要创建一个类似于
的 REST 调用查询
1 2 3 | string addinManifestId ="<your manifest guid here>";//lower cases string prop = @"String {00020329-0000-0000-C000-000000000046} Name"+ string.Format(" cecp-{0}", addinManifestId ); var url = $"/messages/<youritemid>?$expand=SingleValueExtendedProperties($filter=PropertyId eq '{propertyname}')"; |
更多信息
文档可在此处获取 https://msdn.microsoft.com/en-us/library/hh968549(v=exchg.80).aspx
当我需要为我的插件 Keluro 处理"已发送邮件"时,我遇到了类似的问题。
我使用 REST API 上的网络挂钩实现了一些非常接近您的方法的方法。据我所知,这是处理已发送物品的唯一方法。
考虑对此进行投票
https://officespdev.uservoice.com/forums/224641-feature-requests-and-feedback/suggestions/10964871-add-itemsend-event-so-add-in-can-cancel-email