Microsoft Graph Api / calendar端点返回“ OrganizationFromTenantGuidNotFound”,但是/ users端点可以正常工作。如何解决这个问题?

时间:2019-01-24 13:25:20

标签: azure api authentication graph postman

我目前正试图在node.js中使用图形API直接登录到Microsoft日历/用户。

到目前为止,我所做的是:

  1. 登录该帐户,并确保该帐户当前具有日历(电子邮件已在@ outlook.com下注册)。
  2. 转到azure门户并使用返回网址http://localhost:3000创建一个新的AAD名称为“ Calendar Api”的Web api
  3. AAD->应用程序注册->名称:测试,答复URL:localhost:3000,Microsoft Graph的必需权限(用户读/写,日历读/写),Windows AAD(offline_access),授予权限,生成新没有有效期的秘密密钥。
  4. 去邮递员,开始根据以下网址生成新令牌:

开机自检-> https://login.microsoftonline.com/ {APP_ID_URI} .onmicrosoft.com / oauth2 / v2.0 / token

然后我将获得带有令牌的代码200 OK。

  1. 在检查令牌后:

    "aud": "https://graph.microsoft.com", "roles": [ "User.ReadWrite.All", "Calendars.Read", "Calendars.ReadWrite" ],

  2. 开始-> https://graph.microsoft.com/v1.0/users/ 具有授权载体和上述令牌。

将返回代码状态200以及我在步骤1中使用的用户帐户。

  1. 开始-> https://graph.microsoft.com/v1.0/calendars/ 具有授权载体和上述令牌。

    "Resource not found for the segment 'calendars'.",

  2. 开始-> https://graph.microsoft.com/v1.0/users/ {user_id} / calendars或/ calendar或/ calendarView 具有授权载体和上述令牌。

    "code": "OrganizationFromTenantGuidNotFound",
    "message": "The tenant for tenant guid '104fdcd9-76d1-4122-89a0-30cb00722de2' does not exist.",
    

我实际上没有代码,因为我首先使用POSTMAN测试API。

我希望得到一个事件列表或一个日历列表,而不是一个错误。

1 个答案:

答案 0 :(得分:2)

经过一番挖掘,我发现了问题所在,所以这里是此问题的完整解决方案。

  1. 您需要一个带有订阅的Microsoft Office 365帐户,可以通过在Office 365开发上申请一个帐户来获得此帐户。
  2. 创建一个后,按照说明进行操作,并将应用添加到其中。
  3. 转到Azure门户并使用您的Office 365帐户登录。
  4. 在AAD下创建一个应用->应用注册
  5. 遵循此问题的第4步和第5步。
  6. 尝试访问https://graph.microsoft.com/v1.0/users/ {user_id} /日历。