我正在使用 Microsoft Graph API 的/beta 端点,但在尝试代表其他用户(或任何用户)创建聊天消息时收到未经授权的错误。
在 API v1.0 中,不支持 Create chatMessage 方法,但在 Beta 中支持:https://learn.microsoft.com/en-us/graph/api/channel-post-message?view=graph-rest-beta&tabs=http ,作为“Teamwork.Migrate.All”权限,我的应用程序在 Azure 中拥有该权限。
这很奇怪,因为同一个App可以创建Teams、 channel 并添加成员,但不能添加 channel 消息。
有人知道下一步该去哪里吗?
编辑:我现在得到了这个:“您需要在应用程序中将用户委派权限添加到portal.azure.com中的至少Group.ReadWrite.All,然后以用户身份同意或授予在门户中获得管理员同意。并重新运行代表用户|获取用户访问 token 请求以更新访问 token 。”
但是,Beta 文档中关于权限“Teamwork.Migrate.All”的说法没有意义,我的应用程序将其作为“应用程序权限”:“允许应用程序创建聊天和 channel 消息,无需登录用户。应用程序指定哪个用户显示为发件人,并且可以回溯消息,使其看起来像是很久以前发送的。消息可以发送到组织中的任何聊天或 channel 。”
如果我是一个应用程序并且拥有该权限,我应该如何处理用户访问 token ?我正在使用应用程序访问 token 。
最佳答案
Microsoft Graph 不支持使用应用程序权限
简单地将消息发布到 Teams channel
或者您可以setup Incoming Webhook
是 MsTeams channel 中的连接器,在 Teams channel 上完成设置后,您将收到 URL,您可以使用 Postman 或任何 API 消费者应用程序将请求(您的消息)发送到 Incoming Webhook
将在 Teams channel 中发布
注意:传入 Webhook
不支持回复帖子
关于api - 即使应用程序具有 Teamwork.Migrate.All 权限(测试版),创建 ChatMessage 时也未获得授权,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65234475/