问题描述
我们可以/应该使用哪些属性在事件项中存储自定义json数据? 我们目前正在尝试开发一个Web加载项,该加载项的形式应在Event项目的属性内以json的形式发送,因此每当其他人(即与会者)打开该加载项时,为他们展示。
在VSTO C#加载项中,我们可以为此设置一个Outlook.UserProperty,只要组织者编辑该值,该Outlook.UserProperty就会传播给与会者。
在javascript中,我尝试了以下操作:
-
通过使用
Office.context.mailBox.item.loadCustomPropertiesAsync
获取值并通过properties.set(FORM_KEY,JSON.stringify(jsonObject)); properties.saveAsync(...);
设置值来设置CustomProperties值。 -
像这样创建SingleValueExtendedProperty:
fetch(Office.context.mailBox.restUrl+"/v2.0/me/events('"+getRestId(itemId)+"')",{
method: "PATCH",headers: {
"Content-Type": "application/json",Authorization: "Bearer " + accesstoken
},body: JSON.stringify({
SingleValueExtendedProperties: [
{
PropertyId: singleValueExtendedPropertyId,Value: JSON.stringify(jsonObject)
}
]
})
})
- 像这样创建数据扩展名:
fetch(Office.context.mailBox.restUrl+"/v2.0/me/events('"+getRestId(itemId)+"')/extensions('Microsoft.OutlookServices.OpenTypeExtension."+extensionName+"')",{
method: "PATCH",body:
JSON.stringify({
"@odata.type": "Microsoft.OutlookServices.OpenTypeExtension",ExtensionName: extensionName,Value: JSON.stringify(jsonObject)
})
})
所有这些工作适用于组织者 ... 它们永远不会传播给与会者。
解决方法
当前,不支持将有关自定义数据的事件/会议存储为与会者和组织者均可访问。我们在user-voice page上跟踪Outlook加载项功能请求。请在此处添加您的请求。当我们进行规划过程时,会考虑用户语音上的功能请求。