我正在为Microsoft使用/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中拥有的。
这很奇怪,因为同一个应用程序可以创建团队、通道和添加成员,但不能添加通道消息。
有人知道下一步该去哪里找吗?
编辑:我现在把它拿回来了:“您需要在您的应用程序中添加用户委派的权限到至少在portal.azure.com中的portal.azure.com,然后在门户中以用户的身份同意或者授予管理员的同意。并且代表一个用户要获得用户访问令牌的请求重新运行。”
然而,对于Beta文档中关于"Teamwork.Migrate.All“权限的说法,这是毫无意义的。我的应用程序拥有”应用程序权限“:”允许应用程序创建聊天和通道消息,而无需登录用户。该应用程序指定哪个用户显示为发送方,并可以将消息追溯到似乎是很久以前发送的。这些消息可以发送到组织中的任何聊天或频道。“
如果我是一个应用程序,并且拥有这个权限,我应该如何处理用户访问令牌?我正在使用Access令牌。
发布于 2021-05-05 09:42:46
发布于 2020-12-10 13:51:24
您需要将应用程序中的用户委托权限添加到至少在Group.ReadWrite.All中的portal.azure.com中,然后在门户中以用户身份同意或授予管理许可。并代表用户获取用户访问令牌请求重新运行以更新访问令牌。
似乎您需要使用用户令牌而不是应用程序令牌来创建聊天消息。它们之间唯一的区别是用户令牌要求用户登录。应用程序令牌允许应用程序代表其他用户创建聊天消息。目前,您只能使用用户令牌。
正如您的提示消息所述,您需要将Group.ReadWrite.All delegation permission授予应用程序,然后为该权限授予管理许可,然后您需要使用auth码流来获取访问令牌。

更新:
我认为您正在做的是Teamwork.Migrate.All,而不是创建聊天消息,它确实要求您拥有导入消息 application permission。
导入消息是特殊的,它要求您在迁移状态下创建团队和创建achannel,您需要在POST请求中的teamCreationMode和channelCreationMode实例属性中包含migration值。见:这里。


https://stackoverflow.com/questions/65234475
复制相似问题