【问题标题】:Outlook (desktop) addin: Reasons for null Office.context.mailbox.userProfile.emailAddress?Outlook(桌面)插件:Office.context.mailbox.userProfile.emailAddress 为空的原因?
【发布时间】:2019-02-12 12:06:16
【问题描述】:

我们遇到过几种情况,Office.js API(Outlook 插件 API)返回 Office.context.mailbox.userProfile.emailAddress 和 Office.context.mailbox.userProfile.displayName 的空值。在这些情况下,我们的插件无法继续初始化。什么可能导致 Office.js API 返回这些空值?

Microsoft 通过 AppRiver 提供的 Exchange Online 用户/邮箱会发生这种情况,并且仅在 Outlook(桌面)中。当我们的插件在其 OWA 中运行时,将返回正确的值。

Office.initialize = function (reason) {
    var userProfile = Office.context.mailbox.userProfile;
   }
};

谢谢。

【问题讨论】:

  • 对于您提到的属性,Outlook 在加载其网页后,在调用 Office.initialize 之前将这些值发送到加载项。加载项的初始化代码是否设置为在 Office.initialize 内部或之后运行?
  • 澄清一下,API 的全名是 Office.context.mailbox.userProfile.emailAddress 和 Office.context.mailbox.userProfile.displayName。
  • 在这种情况下,它是一个托管的(由 AppRiver)MS Exchange 服务器。我们的插件等待 Office.initialize 执行,然后查询 Office.context.mailbox.userProfile.emailAddress
  • “等待 Office.initialize 执行”我的意思是通过调用我们的回调函数来完成。所以我们的查询发生在应该初始化 Office API 时。
  • 听起来这不是通话时间的问题。您能否查看提供商托管的 Exchange 版本 (steps to check in Outlook)?您在哪个版本的 Outlook 中发现问题?

标签: outlook-addin outlook-web-addins


【解决方案1】:

我注意到这发生在 Outlook for Mac 客户端中,其中加载了具有 Exchange 2016 后端的邮箱。可能是客户端特定的js 文件没有按预期返回属性吗?

在我的例子中,我看到outlook-mac-16.00.js 正在返回电子邮件地址和显示名称,正如预期的那样,使用 Office 365 作为后端,但不是使用 Exchange 2016。

【讨论】:

  • 我们在 AppRiver 管理的一些 Exchange Online 邮箱中遇到了这种情况。在其他托管的 MS Exchange 案例中,即由 Rackspace 或标准 Office 365 邮箱托管,没有问题。
【解决方案2】:

@Alexey - 您是否使用最新的 Office 内部版本测试过相同的内容?我没有 Exchange 本地服务器或托管;相反,我使用 Office 365 进行了测试,它对我有用。或者,您可以检查 Outlook 诊断或 charles Web 代理日志,并查看您对其中受影响用户的注意事项...

【讨论】:

  • 是的,我个人使用内部版本 (Mac),一切正常。我们的插件也已多次获得 Office 商店团队的验证和批准。 Microsoft 为 AppRiver 提供的 Exchange Online 设置有一些特别之处。
  • 所以问题听起来与您的应用程序或 API 调用无关,而是特定于环境/提供商。我不确定给定的 NLB(网络负载平衡器)或任何特定的 .js 文件或设置(如模拟或委托)是否有所作为。我会说它们值得检查。
猜你喜欢
  • 2021-11-16
  • 2021-12-02
  • 1970-01-01
  • 2019-10-29
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多