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

如何向Teams的OnTeamsMessagingExtensionFetchTaskAsync等处理程序传递额外信息

Teams Messaging Extension 自定义参数传递实现方案

该需求可以正常实现,常用的实现方式如下:

  • 利用 ITurnContext 内置的 TurnState 字典存储参数
    TurnState 是 ITurnContext 原生提供的请求生命周期内的键值对存储容器,你可以在请求进入业务处理逻辑之前(比如路由阶段、中间件层)把自定义参数写入该字典,后续在消息扩展处理程序中直接读取即可,示例用法:
    // 写入自定义参数
    turnContext.TurnState["YourCustomParamKey"] = yourParamValue;
    // 业务逻辑中读取参数
    var customParam = turnContext.TurnState.Get<YourParamType>("YourCustomParamKey");
    
  • 从 MessagingExtensionAction 的 Data 字段传递参数
    如果自定义参数和当前消息扩展的触发动作相关,可以在触发消息扩展调用的按钮 payload、或是应用清单的消息扩展命令配置中预埋自定义参数,这些参数会自动被平台带入 MessagingExtensionAction.Data 属性,直接反序列化读取即可:
    var customParam = action.Data?.ToObject<YourCustomParamType>();
    
  • 中间件全局注入公共参数
    如果你需要给所有消息扩展请求统一添加公共参数,可以实现自定义Bot中间件,在中间件的请求处理流程中把公共参数写入 TurnState,后续所有业务逻辑都可以直接读取,无需重复传参。

注意:不要直接修改 ITurnContext、MessagingExtensionAction 的原生内置属性值,避免干扰Teams平台原生逻辑的运行,优先使用上述扩展存储的方式传递自定义参数。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.26 12:15:04