You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Outlook Windows端事件插件:onMessageComposeHandler获取token失败求助

解决Outlook Windows端onMessageComposeHandler中获取token失败的问题

1. 核对清单文件核心配置

Office插件身份验证完全依赖清单的WebApplicationInfo节点,这是最易出错的环节:

<WebApplicationInfo>
  <Id>你的Azure AD应用注册ID</Id>
  <Resource>api://你的插件域名/你的Azure AD应用注册ID</Resource>
  <Scopes>
    <Scope>Mail.Read</Scope> <!-- 按需添加实际需要的权限 -->
    <Scope>offline_access</Scope>
  </Scopes>
</WebApplicationInfo>

注意:

  • Resource必须和Azure AD应用注册里的API标识符完全匹配
  • Scopes要包含业务所需权限,比如调用Graph API需添加对应权限

2. 修正getAccessToken调用逻辑

确保在正确上下文调用,且传入必要参数:

Office.onReady(() => {
  // 注册邮件撰写窗口的事件监听
  Office.context.mailbox.item.addHandlerAsync(Office.EventType.ItemChanged, onMessageComposeHandler);
});

async function onMessageComposeHandler() {
  try {
    const token = await OfficeRuntime.auth.getAccessToken({
      allowSignInPrompt: true, // 允许弹出登录窗口
      allowConsentPrompt: true, // 允许弹出授权窗口
      forMSGraphAccess: true // 调用Graph API必须设为true
    });
    console.log('Token获取成功:', token);
    // 后续业务逻辑
  } catch (error) {
    // 针对性处理错误
    switch(error.code) {
      case 13001:
        console.error('用户未登录,请引导登录');
        break;
      case 13002:
        console.error('用户拒绝授权,请说明权限用途');
        break;
      case 13003:
        console.error('配置错误,请检查清单和Azure AD应用设置');
        break;
      default:
        console.error('未知错误:', error.message);
    }
  }
}

关键提醒:forMSGraphAccess参数不设为true时,获取的token无法调用Graph API,很多新手会忽略这一点。

3. 检查Azure AD应用注册配置

  • 重定向URI:必须添加插件域名(如开发环境的https://localhost:3000),类型选"单页应用(SPA)"或"Web"
  • API权限:添加所需Microsoft Graph权限,企业租户应用需确保已授予管理员同意
  • 公共客户端设置:在Azure AD应用的「身份验证」页面,启用「允许公共客户端流」——Outlook Windows端属于桌面客户端环境,需此设置才能正常获取token

4. Outlook Windows端环境检查

  • 更新Outlook到最新版本,旧版本对OfficeRuntime.auth支持不完善
  • 确认Outlook已启用现代身份验证:可通过Office 365管理员中心设置,或本地注册表配置
  • 开发环境下,确保插件域名已被Outlook信任:用Office插件调试工具添加信任,或通过组策略配置可信站点

内容的提问来源于stack exchange,提问作者Victor Moreno

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.09 15:01:05