MS Graph API 创建Outlook日历事件如何将元数据同步至参会人邀请
MS Graph API日历事件元数据同步问题解答
自定义元数据默认无法同步的原因
你通过Graph API给组织者侧日历事件添加的自定义元数据(包括开放扩展openExtensions、架构扩展schemaExtensions)默认不会同步到参会人收到的邀请事件副本中,这是Exchange日历的原生机制:组织者与所有参会人侧的同一场会议对应独立的事件副本,自定义扩展属性默认不会跨副本同步。
实现自定义元数据同步的可行方案
你可以通过主动更新的方式完成元数据同步,操作步骤如下:
- 当组织者侧事件创建完成后,先获取该事件的
iCalUId属性值,该属性是全局唯一标识,同一场会议在组织者和所有参会人侧的事件副本的iCalUId完全一致 - 遍历事件的参会人列表,调用Graph API查询每个参会人日历中对应
iCalUId的事件,查询请求示例:GET /users/{参会人ID}/events?$filter=iCalUId eq '{目标iCalUId}' - 定位到参会人侧的对应事件后,调用更新接口为该事件添加你需要的自定义元数据即可
注意:该方案需要你的应用拥有参会人日历的读写权限,可通过申请应用级权限Calendars.ReadWrite实现。
可默认自动同步的内置属性
如果你不想做主动更新,也可以使用Exchange原生支持自动同步的内置属性存储你的元数据:
transactionId:创建事件时可自定义赋值的字符串属性,最大长度128字符,无用户可见内容,会自动同步到所有参会人事件副本,适合存储短标识类元数据categories:事件分类属性,支持自定义分类标签,会自动同步到参会人侧extendedProperties(指定可同步的属性集):如果你使用MAPI扩展属性,选择公共属性集下的自定义属性,设置正确的可同步标记后也可实现自动同步,适合存储更长的非结构化元数据
内容的提问来源于stack exchange,提问作者biso
相关产品推荐
相关产品推荐

