GraphError:在不使用资源特定同意时,调用的 API 需要在仅应用程序上下文中进行受保护的 API 访问

Bet*_*eno 4 java api azure node.js microsoft-teams

我正在尝试制作一个 api,将消息发送到团队中的特定频道或组。

我正确地遵循了文档。在Azure中,我向我的应用程序授予了所有权限。她配置了 tenandId、clientId 和 SecretId,但是当我发送请求时,我得到了这个返回。

有谁知道解决方案或遇到过此错误?

在此输入图像描述

在此输入图像描述

文档: https://learn.microsoft.com/en-us/graph/api/channel-post-messages? view=graph-rest-1.0&tabs=javascript

max*_*paj 5

您的代码当前正在尝试使用 GET HTTP 请求(这是代码中的部分)来读取 messages 。.get()

如果您想要发送消息.get(),那么您需要通过将 更改为 来发出 POST 请求.post(channelMessage)

有关受保护 API 的更多信息

根据“受保护的 API”文档

Microsoft Graph 中访问敏感数据的Microsoft Teams API 被视为受保护的 API。这些 API 要求您在使用之前进行除权限和同意之外的额外验证。

个人消息似乎是敏感数据,这是有道理的。但请注意,还有一种替代解决方案,您可以像用户使用 API 一样使用 API。这称为委托权限

委派权限由具有登录用户的应用程序使用。对于这些应用,用户或管理员同意应用请求的权限,并且应用在调用 Microsoft Graph 时可以充当登录用户。某些委派权限可以由非管理用户同意,但某些更高权限的权限需要管理员同意。

如果您不适合委派权限,您仍然可以向 Microsoft Graph 发出正式请求,请求获得使用 API 的权限,而无需任何用户交互。

要请求访问这些受保护的 API,请填写以下请求表。我们每周三审核访问请求,每周五部署审批(美国主要假日周除外)。在这些周内提交的内容将在下一个非假日周进行处理。

这是发送正式请求的表格。