关于Microsoft Graph API创建用户后代其发送Teams频道消息的问询
关于以新创建用户身份发送Teams频道消息的问题解答
明确结论
没错,要以新创建的用户身份发送Teams频道消息,必须获取该用户专属的access_token。你现在用自己的token调用POST https://graph.microsoft.com/beta/teams/{team_id}/channels/{channel_id}/messages,消息自然会显示成你的身份——Graph API完全是靠请求里的access_token来识别调用者身份的。
无需用户交互的替代方案
如果没办法拿到新用户的token(比如没有用户手动授权的场景),可以用应用权限+用户模拟的方式实现:
- 第一步,给你的应用申请
ChannelMessage.Send.All应用权限(注意是应用权限,不是委托权限),并且需要管理员完成全局同意。 - 调用消息发送接口时,在请求头里加上
X-MS-APP-ACTS-AS,值填新用户的ID或者UPN。这样发送的消息就会以该用户的身份展示,而且不需要获取他的token。
几点注意
- 应用权限必须由管理员全局同意,普通用户没法自己授权。
- 用
X-MS-APP-ACTS-AS模拟用户时,这个用户必须已经加入了目标团队,不然接口会报错。 - 这个模拟方式只支持应用权限模式,委托权限下用不了这个请求头。
内容的提问来源于stack exchange,提问作者vvbdtt
相关产品推荐
相关产品推荐

