通过Microsoft Graph在Outlook加载项中获取自定义属性集

阿列克·科瓦尔奇克

假设我的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));
});

我知道,它实际上已保存在事件中。

现在有关这些自定义属性的一堆问题:

  1. 但是,这些与扩展属性相关吗?

  2. 这些属性可以通过Outlook REST API或Microsoft Graph以某种方式访问​​吗?

  3. 是否可以使用Microsoft Graph和基于这些属性的过滤器来创建推送通知订阅?(我知道我可以基于扩展属性)

  4. 如果以上问题的答案为“否”,并且只能通过创建自定义属性的加载项来访问自定义属性,那么有一种方法可以为该加载项中的事件创建扩展属性,即使未保存也是如此?

为了解释为什么要问-我正在创建一个加载项,该加载项允许将约会与我们的第三方系统“连接”起来,并使该约会与我们的对象保持同步。

因此,当在撰写表单上单击一个按钮时,我:

  • 保存约会并获得event-id
  • 将其存储在我们的系统中,以完成从系统到约会的同步。
  • 使用约会在我们的系统中使用Microsoft Graph添加扩展属性

在第一次使用外接程序时,用户进行身份验证,然后使用扩展属性为事件创建推送通知订阅,以执行从Outlook到系统的同步。

它在OWA上运行良好,但是现在由于我们确实需要支持台式机,因此出现了两个主要问题:

  • Outlook for Mac:没有saveAsync方法,因此也没有办法获取事件的id,我正在考虑添加一些自定义属性,然后让推送通知通知我们的系统,该事件已创建,需要与系统外进行同步。

  • Outlook for PC:有此saveAsync方法,但是当约会在本地保存而不是在服务器上保存时执行回调,因此我不知道何时确切创建了事件,并且可以对该事件进行一些Microsoft Graph调用。

回答我的第一个问题,和/或关于我的用例的任何提示都将受到欢迎。

贝诺瓦·帕特拉

TL; DR; 是的,可以使用REST API读取Office.jsapi设置的自定义属性。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] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

Azure AD B2C - 通过令牌中的图形 API 获取自定义属性集

Microsoft Outlook加载项中的自定义任务窗格标题

如何通过自定义加载项在 Outlook 会议请求中添加下拉列表?

通过 Microsoft Graph 读取 Office 文档的自定义设置

如何使用Microsoft图形API获取自定义扩展属性

通过字符串var获取自定义对象属性

无法通过Android Drive API获取自定义属性

通过ActionExecutingContext从控制器.Net Core获取自定义属性

Microsoft Graph 自定义用户属性

通过点表示法获取自定义变量

通过 VBA 屏幕抓取获取自定义元素

如何通过 Javascript 获取自定义 css 样式?

如何通过命令行在 jmeter 中获取自定义日志

通过 VSTO 加载项自定义 Outlook 约会鼠标悬停屏幕提示

通过 Microsoft GRAPH 的 OneDrive 通知

通过Microsoft Graph观察Outlook事件

如何通过管理API获取自定义数据源的自定义维度?

如何在spring数据中使用JPQL或Criteria Api通过枚举属性获取自定义数据组?

无法通过 Microsoft Graph 获取已删除的 Outlook 邮件

无法通过 Microsoft Graph 获取收到的消息

Outlook加载项中单个用户的Microsoft Graph访问令牌

如何使用Microsoft Graph API通过自定义列值查找SharePoint文档

Outlook Web加载项如何通过JS中的EWS获取客户属性

Outlook Web加载项调用Microsoft Graph

通过Microsoft Graph从Azure AD获取组中的用户

通过文本查找控件并使用 Ctype 分配自定义属性或项是字典中的控件

通过VBA更新Microsoft Word链接项

通过 microsoft graph 来宾用户列表

通过Microsoft Graph查询组邮箱的范围