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

调用Microsoft Graph API获取日历遇OrganizationFromTenantGuidNotFound错误

解决调用Microsoft Graph API获取Outlook日历时的OrganizationFromTenantGuidNotFound错误

核心问题分析

你遇到的错误本质是应用注册配置或请求逻辑不符合个人Microsoft 365租户的要求:个人版账号属于微软消费者租户,而当前Azure应用配置/请求更适配企业租户场景,导致Token无法匹配个人租户权限。

具体解决步骤

  • 修正请求端点
    个人版用户无需使用带租户ID的路径,直接调用以下任一端点即可:

    • 获取当前授权用户的日历:https://graph.microsoft.com/v1.0/me/calendars
    • 指定个人用户的日历:https://graph.microsoft.com/v1.0/users/{userPrincipalName}/calendars(替换{userPrincipalName}为你的个人邮箱,比如xxx@outlook.com)
  • 调整Azure应用的租户支持类型

    1. 登录Azure Portal,进入你的应用注册页面
    2. 找到“管理”板块下的“身份验证”选项
    3. 将“支持的账户类型”改为任何组织目录中的账户和个人Microsoft账户(例如Skype、Xbox)
    4. 保存配置
  • 替换正确的API权限
    移除之前添加的Office 365 Management APIs权限,添加Microsoft Graph的委派权限:

    1. 进入应用注册的“API权限”页面
    2. 点击“添加权限”→选择“Microsoft Graph”→“委派权限”
    3. 搜索并勾选Calendars.Read或Calendars.ReadWrite(按需选择)
    4. 点击“添加权限”,并完成权限同意(个人账号可直接完成同意)
  • 验证并修正Token获取逻辑

    1. 解码你的Access Token,对比Graph Explorer的Token,重点检查:
      • tid(租户ID):个人版账号的tid应为消费者租户ID,而非你Azure应用的单租户ID
      • scp(权限范围):需包含Calendars.Read等Microsoft Graph日历权限,而非Office 365 Management APIs相关权限
    2. 确保授权码流程的scope参数为https://graph.microsoft.com/Calendars.Read openid profile offline_access(按需添加其他所需权限),而非Office 365相关的scope
  • 重新获取Token并测试
    按照修正后的配置重新走授权码流程获取Token,再调用日历接口验证结果

内容的提问来源于stack exchange,提问作者Josep Navarro

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.20 18:05:24