office-js - Outlook Web 加载项的自定义属性的最大大小限制
问题描述
我正在开发一个 Outlook Web 插件。对于部分功能,我们需要将一些自定义属性与会议项目一起存储。
似乎所有自定义属性总共有 2500 个字符的硬限制,我通过一些试验和错误发现,并且通过挖掘插件使用的 JS 文件并找到这个函数:
r.CustomProperties.prototype.saveAsync = function() {
for (var i = [], t = 0; t < arguments.length; ++t)
i[t] = arguments[t];
var f = 2500;
if (window.JSON.stringify(this._data$p$0).length > f)
throw Error.argument();
var n = r.CommonParameters.parse(i, !1, !0);
if (window.OSF.DDA.OutlookAppOm._instance$p.shouldRunNewCode(r.ShouldRunNewCodeForFlags.saveCustomProperties))
window.OSF.DDA.OutlookAppOm._instance$p._standardInvokeHostMethod$i$0(4, {
customProperties: this._data$p$0
}, null, n._asyncContext$p$0, n._callback$p$0);
else {
var u = new r.SaveDictionaryRequest(n._callback$p$0,n._asyncContext$p$0);
u._sendRequest$i$0(4, "SaveCustomProperties", {
customProperties: this._data$p$0
})
}
}
有没有人找到另一种方法可以让我们保存超过 2500 个字符?如果我们可以将这个限制提高四倍,那将是正确的;由于我们存储的数据的敏感性,如果我们可以避免它,我们宁愿不引入另一个数据库(而是依赖于我们已经拥有的围绕 Microsoft Exchange 的安全性)。
解决方案
这是一个有趣的发现,但是限制是在 JS 函数中设置的,它公开了设置/保存自定义属性的功能。我没有在文档中资助任何提及此限制的内容。Microsoft 应更新文档以指示此限制。
如果您需要在邮件中存储更多信息,作为一种解决方法,您可以使用 EWS 请求(更多信息请参见“从 Outlook 加载项调用 Web 服务”)或 REST(更多信息请参见“ Outlook 扩展属性 REST API 参考”)调用. 您将能够在没有此限制的情况下设置自定义/扩展属性,特别是如果您使用“Binaty”类型。
推荐阅读
- java - Guice:在方法中添加依赖项
- typescript - 如何从不可变对象类型中提取可变对象类型
- c# - 具有无关的额外参数和 DTO 在域层中执行 IRepository
- ember.js - 查找使用“createRecord”创建且 ID 值为空的 Ember-Data 行?
- r - 使用聚合函数找到每组不为零的最小值
- ios - UIlabel 中的动画文本
- scala - 如何在 Slick 中使用 group by 执行多重求和?
- docker - 在生产环境中部署使用docker构建的laravel时找不到404
- c# - MVC 路由问题如何设置所有控制器的默认操作?
- c# - 如何在使用运行时和探测构建后创建 .dlls 的默认目录?