You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Teams应用/机器人调用chatMessage: setReaction API的权限与令牌问题

解决方案

核心问题说明

Microsoft Graph的消息反应接口(添加点赞/点踩)确实仅支持Delegated类型令牌,无法直接使用Application令牌以机器人身份操作。如果用提及机器人的用户(比如John)的Delegated令牌调用接口,反应会显示为John添加的,不符合需求。

可行方案

方案1:使用机器人自身的用户身份获取Delegated令牌

机器人在Teams中本质是一个特殊的用户账号,你可以通过以下方式获取机器人自身的Delegated令牌:

  • 使用资源所有者密码凭据(ROPC)流程,用机器人的用户名和密码向Azure AD请求Delegated令牌(需确保机器人账号启用了ROPC,且拥有TeamsActivity.Send等必要的Delegated权限)。
  • 调用Graph的消息反应接口时,使用这个令牌,反应会显示为机器人账号的身份,而非触发用户的身份。

注意:ROPC流程需要存储机器人的账号密码,存在一定安全风险,仅在其他方案不可行时使用。

方案2:自定义模拟反应(无需Graph API)

如果不想依赖Graph API的限制,可以用自适应卡片实现自定义的点赞/点踩功能:

  • 当机器人接收到提及事件时,在目标消息下方回复一个包含点赞、点踩按钮的自适应卡片。
  • 用户点击按钮后,机器人更新卡片中的点赞/点踩计数,同时可以将计数同步存储到你的服务器数据库。
  • 这种方式完全基于机器人的消息能力实现,不受Graph API权限限制,还可以自定义样式和交互逻辑。

方案3:申请特殊权限(仅适用于特定场景)

如果你的应用是面向企业租户的内部应用,可以联系租户管理员向Microsoft申请Application类型的TeamsActivity.Send权限(虽然官方文档未公开支持,但部分企业租户可通过特殊申请开通)。申请通过后,就能用机器人的Application令牌直接调用消息反应接口。

内容的提问来源于stack exchange,提问作者x1a0

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.28 01:47:43