Outlook 如何指定使用的Office.js的确切版本?

Outlook 如何指定使用的Office.js的确切版本?,outlook,office-js,office-addins,outlook-web-addins,office-store,Outlook,Office Js,Office Addins,Outlook Web Addins,Office Store,我们正在运行Outlook加载项,看起来Microsoft已将Office.js的版本从16.00更新为16.01:Outlook:{ios:“16.00”、mac:“16.00”、web:“16.01”、win32:“16.02”}(via) 其中一个变化似乎是对postMessage的抽象进行额外验证,以确保子/父域的域(包括子域)相同 由于我们在不同的子域上托管外接程序和中央身份验证服务器,因此,Outlook for web中的所有OAuth流都被破坏 outlook-web-16.01

我们正在运行Outlook加载项,看起来Microsoft已将Office.js的版本从
16.00
更新为
16.01
Outlook:{ios:“16.00”、mac:“16.00”、web:“16.01”、win32:“16.02”}
(via)

其中一个变化似乎是对
postMessage
的抽象进行额外验证,以确保子/父域的域(包括子域)相同

由于我们在不同的子域上托管外接程序和中央身份验证服务器,因此,Outlook for web中的所有OAuth流都被破坏

outlook-web-16.01.js:18未能在“DOMWindow”上执行“postMessage”:提供的目标源代码为('https://outlook.domain.com“”与收件人窗口的来源不匹配('https://auth.domain.com)

桌面Outlook(MacOS和Windows)不受影响

我们已经将清单文件中的域列为白名单:

<AppDomains>
  <AppDomain>https://outlook.domain.com</AppDomain>
  <AppDomain>https://outlook-staging.domain.com</AppDomain>
  <AppDomain>https://auth.domain.com</AppDomain>
</AppDomains>

https://outlook.domain.com
https://outlook-staging.domain.com
https://auth.domain.com

是否可以手动指定每个平台中加载的Office.js版本,以便我们可以按照自己的速度升级并避免破坏这些更改?

对于此特定错误,您需要将子域添加到清单中的appdomain/appdomains部分。见:

通常无法指定主要版本更改,即16.00->16.01,不应回滚到。如果主机(OWA客户端或Outlook)需要某个版本(16.01),强制使用16.00将导致意外行为(很可能API只是返回错误)


如果您想更灵活地应对我们对这些文件所做的更改(即我们对16.01所做的更改),您可以将这些文件从AppsProfile中取出并自托管它们。但不支持/建议这样做。这意味着我们对这些文件所做的任何错误修复或改进都将丢失

我们确实在清单文件中指定了这些域,并且在完成验证过程之前已经指定了这些域。我们研究了自托管,但由于Office.JS在不同平台上使用不同的JS文件的方式,这似乎有问题。还需要注意的是,这一特定错误仅在过去一两天内发生过,这就是我将其归因于版本更改的原因。鉴于桌面版本似乎不受影响,我们如何将其作为预期行为中的bug进行归档并寻求及时的修复?我认为这可能与清单上的appdomains部分不同。使用对话框API时是否出现此错误?如果是,在哪些操作系统和浏览器中?是的,我们使用的是对话API。它目前正在Safari和Chrome上的MacOS上运行。尚未在Windows环境上验证,但可以很快进行测试。