MS Teams & Bot Framework 跨租户自适应卡片操作按钮不触发问题
跨租户场景下操作按钮未触发事件推送的原因
- 平台跨租户事件路由默认拦截规则:协作平台的事件路由机制默认限制仅同租户内的卡片动作事件会推送到对应机器人服务端。跨租户场景下,即使用户所在租户已安装你的机器人,非一对一/群聊会话内产生的卡片(比如消息扩展生成的共享卡片)的动作事件,会被平台默认拦截,不会推送到你的服务端。
- 自适应卡片动作类型兼容性问题:旧版的
Action.Submit类型仅支持同租户上下文的事件路由,没有跨租户场景的事件分发能力,跨租户用户点击时平台无法正确识别事件接收方,直接丢弃事件。 - 应用权限配置缺失:你的应用清单未配置跨租户动作接收的相关权限,平台校验时判定你的机器人没有权限接收该租户的用户动作事件,直接终止事件推送流程。
可行的跨租户操作按钮点击事件处理方案
- 替换自适应卡片动作类型为通用动作类型:将卡片原有的
Action.Submit类型替换为Action.Execute类型,该类型是平台为跨租户、跨端场景设计的通用动作类型,支持将任意场景下的卡片动作事件路由到你的机器人服务端,无需依赖同租户上下文。 - 调整应用清单配置:
- 在
manifest.json的validDomains字段中完整添加你机器人服务、任务模块页面的所有域名,确保平台信任你的服务端点。 - 添加
webApplicationInfo节点,配置正确的应用客户端 ID、资源 URI,开启跨租户资源访问权限。 - 显式声明允许接收跨租户动作事件的相关权限,部分平台要求该配置显式开启才会放行跨租户事件。
- 在
- 改用深度链接触发任务模块:如果仅需要点击按钮打开任务模块展示信息,不需要后端实时校验逻辑,可以直接将按钮配置为任务模块深度链接,通过
Action.OpenUrl类型直接拉起任务模块,无需经过机器人事件推送即可完成操作,完全规避跨租户事件路由问题。 - 应用安装时预授权:在应用的安装引导流程中,申请租户管理员同意对应租户下的机器人操作相关权限,确保你的机器人有权限接收该租户所有用户触发的动作事件。
内容的提问来源于stack exchange,提问作者Kapil J
相关产品推荐
相关产品推荐

