Outlook插件中OfficeRuntime.auth.getAccessToken报错问题咨询
Outlook插件中OfficeRuntime.auth.getAccessToken失效的原因及修复
问题根源:Outlook与Excel的SSO机制差异
同样代码和权限配置在Excel正常、Outlook报错API Not Supported(错误码13000),本质是Outlook对插件单点登录(SSO)的启用要求、manifest规则和Excel不一样,导致身份验证API没被正确激活。
排查与修复步骤
1. 检查Manifest配置的完整性
Outlook插件启用SSO必须在manifest.xml里正确配置<WebApplicationInfo>节点,注意:
- 这个节点必须放在针对Outlook的
<Host>节点下(也就是<VersionOverrides>→<Hosts>→<Host xsi:type="Mail">内部),不能直接复用Excel的配置结构。 - 确保
<Id>(Azure AD应用ID)、<Resource>(一般填https://graph.microsoft.com)、<Scopes>(比如Mail.Read、User.Read这类Graph权限)和Azure AD应用注册的信息完全匹配。 - 还要确认
<Permissions>节点声明了Outlook所需的权限,比如ReadWriteMailbox,别漏了身份验证相关的权限声明。
2. 验证Outlook客户端的SSO支持情况
OfficeRuntime.auth.getAccessToken只在以下Outlook环境中可用:
- 微软365订阅版的桌面客户端(版本2008及以上)
- Outlook网页版(必须是Exchange Online环境)
- 不支持本地Exchange服务器部署的Outlook,或者旧版批量许可的Outlook(比如2016非订阅版)
如果你的测试环境是不支持的版本,肯定会触发13000错误。
3. 适配getAccessToken的调用参数
在Outlook里调用这个方法时,最好显式指定资源参数,比如:
OfficeRuntime.auth.getAccessToken({ allowSignInPrompt: true, allowConsentPrompt: true, resource: "https://graph.microsoft.com" })
Excel可能会默认处理资源参数,但Outlook需要明确声明,否则API会识别不了身份验证请求。
4. 检查Azure AD应用注册配置
确保Azure AD应用注册满足:
- 添加了Outlook插件专用的重定向URI,格式是
https://outlook.office.com/owa/{你的插件ID}/auth/callback - 已授予并获得管理员同意的Graph权限(尤其是Outlook相关的,比如
Mail.Read) - 应用的“支持的账户类型”设置和插件部署范围匹配(比如组织账户或所有账户)
后端报错的关联说明
后端的jwt must be provided错误是前端没拿到accessToken导致的连锁问题,只要解决前端getAccessToken的调用问题,后端的JWT缺失问题自然就解决了。
内容的提问来源于stack exchange,提问作者Wladefant
相关产品推荐
相关产品推荐

