Microsoft Graph Api - Post 订阅出现内部服务器错误

Microsoft Graph Api - Post Subscription gives Internal Server Error

我正在尝试通过 https://graph.microsoft.com/v1.0/subscriptions 端点 post 订阅图表 api 的请求。但是,我不断收到此错误:

   "code": "ExtensionError",
        "message": "Operation: Create; Exception: [Status Code: InternalServerError; Reason: Expected 1 response for tenant lookup for tenant id ... but received 0]

我的要求:

{
    "changeType": "created,updated",
    "notificationUrl": "https://.../notification",
    "resource": "communications/callRecords",
    "expirationDateTime": "2021-03-24T18:23:45.9356913Z",
    "clientState": "secretClientValue"
}

我可以使用我的租户 ID 获取令牌 grant_type = client_credentials(OAuth 2.0 客户端凭据授予流程)。我不明白为什么我的租户在订阅时出错,尽管令牌创建成功。 我究竟做错了什么?请帮忙!

谢谢。

更新: 我的应用程序的权限:

  1. Calendars.ReadWrite申请
  2. CallRecords.Read.All申请
  3. Directory.ReadWrite.All申请
  4. OnlineMeetings.Read.All申请

已授予所有人管理员许可。

我假设你说“grant_type = client_credentials(OAuth 2.0 客户端凭据授予流程)”你正在使用委派的 CallRecords.Read.All 权限。

如果您阅读此 page,它表示 CallRecord 订阅仅支持应用程序 CallRecords.Read.All 权限。因此,您必须使用应用程序客户端进行身份验证,而不是客户端凭据。

=====更新=====

根据评论我可以猜出可能的问题数量:

由于“免费”Azure 帐户没有团队许可证,有人猜测订阅调用会因某些原因而失败。这可能就是为什么您收到一条奇怪的消息而失败的原因。

另一个设置是您的 Azure 应用程序在“免费”帐户中,订阅是针对另一个租户(例如您的工作租户)的。为此,您需要:

  • azure 应用程序设置为多租户
  • 工作租户的管理员同意他们的管理员
  • 在生成令牌调用中,“myTenantId”必须是工作租户的租户 ID