api - 即使应用程序具有 Teamwork.Migrate.All 权限(测试版),创建 ChatMessage 时也未获得授权

标签 api graph azure-active-directory microsoft-graph-api

我正在使用 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 中发布

Sample Result Image

注意:传入 Webhook 不支持回复帖子

关于api - 即使应用程序具有 Teamwork.Migrate.All 权限(测试版),创建 ChatMessage 时也未获得授权,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65234475/

相关文章:

java - 是否可以使用 google api 搜索 google 产品(以前称为 www.froogle.com )?

java - 检查从顶点 v 到另一个顶点 w 的所有路径是否具有相同的长度

.NET STANDARD 4.7.2 Azure 不记名 token 授权

sql-server - 是否可以从本地 SQL Server 查询 Azure Active Directory?

azure - 了解是否以及何时获得管理员同意

api - 如何在Clickbank IPN通知中使用cvendthru参数?

json - Office 365 API 为全天事件返回不正确的开始和结束日期时间

api - Jmeter View Results Tree 不返回响应数据中的任何内容

java - 深度优先搜索提前终止

algorithm - 为什么在 Bellman Ford 算法中需要 (node number - 1) 次迭代来找到最短路径?