【发布时间】:2017-08-25 03:25:39
【问题描述】:
假设我的 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 以某种方式访问这些属性?
是否可以使用 Microsoft Graph 和基于这些属性的筛选器创建推送通知订阅? (我知道我可以基于扩展属性)
如果上述问题的答案是“否”,并且自定义属性只能通过创建它们的加载项访问,有没有办法从加载项为事件创建扩展属性,即使没有保存?
解释我为什么要问 - 我正在创建一个插件,它允许将约会“连接”到我们的第 3 方系统,并使该约会与我们的对象保持同步。
所以当点击撰写表单上的按钮时,我:
- 保存预约并获取
event-id, - 将其存储在我们的系统中,以便从我们的系统同步到约会。
- 使用 Microsoft Graph 在我们的系统中为该约会添加扩展属性
在第一次使用插件时,用户进行身份验证,然后我使用我们的扩展属性为事件创建推送通知订阅,以便从 Outlook 同步到我们的系统。
它在 OWA 上运行良好,但现在我们确实需要支持桌面,因此出现了两个主要问题:
Outlook for Mac:没有
saveAsync方法,因此无法获取事件的id,我正在考虑添加一些自定义属性,然后让推送通知通知我们的系统,一个事件是已创建,需要与系统同步。PC 版 Outlook:有
saveAsync方法,但是当约会保存在本地时执行回调,而不是在服务器上,因此我不知道确切的事件何时创建,我可以对该事件进行一些 Microsoft Graph 调用。
欢迎回答我的第一个问题和/或任何关于我的用例的提示。
【问题讨论】:
标签: office-js outlook-restapi outlook-web-addins microsoft-graph-api