gpt4 book ai didi

c# - 从机器人代码调用 MS Teams Graph API 导致 403 Request Forbidden

转载 作者:行者123 更新时间:2023-11-30 22:56:35 26 4
gpt4 key购买 nike

我有一个添加了 Cortana channel 的机器人。我已配置 Cortana 连接帐户以获取图形 API 的访问 token 。我的机器人代码使用此 token 来调用 MS Teams API。

Cortana 正确调用我的技能机器人并提示用户登录。成功登录后,我已在代码中验证我正在获取访问 token 。使用此 token ,当我的机器人代码调用 https://graph.microsoft.com/v1.0/me/joinedTeams 时,我得到响应:

{
StatusCode: 403,
ReasonPhrase: 'Forbidden',
Version: 1.1,
Content: System.Net.Http.StreamContent,
Headers: {
Transfer-Encoding: chunked
request-id: b1f83dda-1ce4-4660-9950-d890123f5b27
client-request-id: b1f83dda-1ce4-4660-9950-d890123f5b27
x-ms-ags-diagnostic: {
"ServerInfo":{
"DataCenter":"West US",
"Slice":"SliceC",
"Ring":"5",
"ScaleUnit":"003",
"Host":"AGSFE_IN_4",
"ADSiteName":"WUS"
}
}
Duration: 43.0296
Strict-Transport-Security: max-age=31536000
Cache-Control: private
Date: Wed, 23 Jan 2019 20:13:33 GMT
Content-Type: application/json
}
}

我在 Cortana channel Oauth 设置范围内以及 Azure 门户中的应用内设置了以下权限:

  • Mail.Read
  • Mail.Send
  • openid
  • 简介
  • User.Read
  • User.ReadBasic.All
  • User.Read.All
  • User.ReadWrite.All
  • Group.Read.All
  • Group.ReadWrite.All(委托(delegate)+申请)

使用相同的登录凭据通过图形浏览器进行的相同调用会返回我加入的团队列表。

我在这里错过了什么?我该如何进一步调试?

enter image description here

最佳答案

在您可以使用某些权限范围之前,您需要先获得“管理员同意”。请注意,这是一个不同于“用户同意”的过程。管理员同意先于用户同意,实际上是管理员说“当然,我租户中的用户可以接受您的应用程序要求的范围”。您可以在 understanding the difference between User and Admin Consent 上找到这篇文章有帮助。

执行 Admin Consent 的方式在一定程度上取决于您的应用程序。如果您是一个 Multi-Tenancy 应用程序(即您的应用程序被不同的组织使用),那么您需要向每个租户的管理员提供一个特定的 URI 以启动该过程。对于这个过程,我建议看一下 Obtaining Administrative Consent for your application .

如果您是单租户应用程序(即内部企业应用程序),那么事情会简单一些。租户管理员只需单击 Azure portal 中的应用程序注册页面中的“授予同意”选项即可。 (它位于您应用程序的“API 权限”页面上)。

关于c# - 从机器人代码调用 MS Teams Graph API 导致 403 Request Forbidden,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54335179/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com