调用方法需要提升权限:'mailbox.getUserIdentityToken'

Elevated permission is required to call the method: 'mailbox.getUserIdentityToken'

知道为什么 Outlook 插件会收到此错误吗?

Elevated permission is required to call the method: 'mailbox.getUserIdentityToken'

我们的清单文件指定了读写权限:

<Permissions>ReadWriteItem</Permissions>
<Rule xsi:type="RuleCollection" Mode="Or">
    <Rule xsi:type="ItemIs" ItemType="Message" FormType="Edit"/>
    <Rule xsi:type="ItemIs" ItemType="Message" FormType="Read"/>
</Rule> 

数百个中只有一个 user/account 遇到此问题。

谢谢。

一个更新: 我们解决了 'Elevated permission is required ...' 问题,但该方法偶尔 returns:

getUserIdentityTokenAsync failed - status: failed, error: Internal Error, code: 5001, message: An internal error has occurred.

我们忽略这个,稍后再试,成功了。不确定这个错误是什么意思。

出于某种原因,如果您在计时器中稍后安排方法调用,则会发生此 "Elevated permission ..." 错误。我们重构了令牌刷新代码以放弃使用 Timer,这似乎已修复它!

我猜 Office API 在后台使用计时器调用时丢失了一些重要的上下文。

您的问题:

getUserIdentityTokenAsync failed - status: failed, error: Internal Error, code: 5001, message: An internal error has occurred.

当发生网络错误阻止获取令牌时,可能会发生这种情况。重试是解决这个问题的有效方法。如果您想了解有关可能发生的网络问题的更多信息,asyncResult 上有一个诊断对象:https://docs.microsoft.com/en-us/javascript/api/office/office.asyncresult?view=word-js-preview#diagnostics