假设我的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和基于这些属性的过滤器来创建推送通知订阅?(我知道我可以基于扩展属性)
如果以上问题的答案为“否”,并且只能通过创建自定义属性的加载项来访问自定义属性,那么有一种方法可以为该加载项中的事件创建扩展属性,即使未保存也是如此?
为了解释为什么要问-我正在创建一个加载项,该加载项允许将约会与我们的第三方系统“连接”起来,并使该约会与我们的对象保持同步。
因此,当在撰写表单上单击一个按钮时,我:
event-id
,在第一次使用外接程序时,用户进行身份验证,然后使用扩展属性为事件创建推送通知订阅,以执行从Outlook到系统的同步。
它在OWA上运行良好,但是现在由于我们确实需要支持台式机,因此出现了两个主要问题:
Outlook for Mac:没有saveAsync
方法,因此也没有办法获取事件的id
,我正在考虑添加一些自定义属性,然后让推送通知通知我们的系统,该事件已创建,需要与系统外进行同步。
Outlook for PC:有此saveAsync
方法,但是当约会在本地保存而不是在服务器上保存时执行回调,因此我不知道何时确切创建了事件,并且可以对该事件进行一些Microsoft Graph调用。
回答我的第一个问题,和/或关于我的用例的任何提示都将受到欢迎。
TL; DR; 是的,可以使用REST API读取Office.js
api设置的自定义属性。loadCustomPropertiesAsync
您需要创建一个看起来像REST的查询
string addinManifestId = "<your manifest guid here>";//lower cases
string prop = @"String {00020329-0000-0000-C000-000000000046} Name"+ string.Format(" cecp-{0}", addinManifestId );
var url = $"<apiEndpoint>/messages/<youritemid>?$expand=SingleValueExtendedProperties($filter=PropertyId eq '{propertyname}')";
更多信息
该文档位于此处https://msdn.microsoft.com/zh-cn/library/hh968549(v=exchg.80).aspx
当我需要为外接程序Keluro处理“已发送邮件”时,我遇到了类似的问题。我通过REST API上的Web钩子实现了与您的方法非常接近的方法。据我所知,这是处理已发送邮件的唯一方法。考虑考虑对此https://officespdev.uservoice.com/forums/224641-feature-requests-and-feedback/suggestions/10964871-add-itemsend-event-so-add-in-can-cancel-email进行投票
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句