适用于团队的 Microsoft Graph API:发送频道/聊天消息

Koe*_*ler 4 microsoft-graph-api

我想使用 Microsoft Graph API 将消息发送到聊天或频道。

我创建了一个应用程序内注册。 在此输入图像描述

创建了一个秘密,我可以使用下面的 URI 获取一个令牌

https://login.microsoftonline.com//oauth2/v2.0/token

我还将权限设置为以下 在此输入图像描述

我正在尝试使用团队合作 API

POST /teams/{team-id}/channels/{channel-id}/messages

我得到以下回复

{“error”:{“code”:“Forbidden”,“message”:“缺少请求的角色权限。API需要'Teamwork.Migrate.All,ChannelMessage.ReadWrite.All'之一。请求的角色'' ","innerError":{"date":"2021-08-10T19:01:16","re​​quest-id":"MyID","client-request-id":"MyID"}}}

我将在哪里分配这些权限是在 API 权限中还是在角色和管理员中分配新角色

nas*_*iar 5

您的问题是,这些都是应用程序权限,而所有现有权限都是委派权限。

在门户中,不要单击“委派权限”,而是单击“应用程序权限”,您可以添加 Teamwork.Migrate.All 和 ChannelMessage.ReadWrite.All。

另请注意,这些都需要管理员同意,因此您必须让管理员首先登录并授予权限,或者向管理员发送同意链接以允许您的应用程序获得这些权限:https ://learn.microsoft.com/en-us /azure/active-directory/manage-apps/grant-admin-consent

转至 Portal.azure.com > Azure Active Directory Blade > 应用程序注册 > 您的应用程序 > API 权限 > 图形 API > 应用程序权限

在此输入图像描述

您可以在此处找到有关委派与应用程序权限的更多信息: https: //learn.microsoft.com/en-us/graph/permissions-reference#channel-permissions

  • 奇怪的是,ChannelMessage.ReadWrite.All 实际上并未出现在可用应用程序权限列表中。 (5认同)