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

如何在MS Teams聊天BotBuilder的onConversationUpdate事件中从上下文获取locale

MS Teams机器人onConversationUpdate事件获取locale的可行方案

你在使用BotBuilder框架开发Microsoft Teams聊天机器人时遇到的onConversationUpdate事件不返回locale参数属于Teams平台的原生设计,该类型的Activity默认不会携带语言相关字段,你可以通过以下三种方案实现欢迎消息场景下的locale获取:

  • 从用户首次互动中捕获locale
    当用户主动向机器人发送第一条消息时,message类型的Activity会默认携带完整的locale参数,你可以将该值和当前会话ID/用户ID绑定存入持久化存储。如果首次欢迎消息触发时还未拿到locale,可以先推送默认语言的欢迎内容,后续所有交互都使用捕获到的对应语言即可,也可以在拿到locale后补发对应语言的欢迎消息。
  • 调用Graph API获取用户首选语言
    如果你的机器人申请了User.Read接口权限,可以在onConversationUpdate事件触发时,从Activity中提取用户的AAD ID,调用Microsoft Graph的用户信息接口获取用户M365账号配置的preferredLanguage字段,将该值作为locale使用。需要注意该字段为用户账号的全局配置,可能和用户当前Teams客户端的实际语言存在差异。
  • 通过自适应卡片交互获取客户端locale
    你可以在首次欢迎消息中附带自适应卡片,设置「开始使用」等引导点击的按钮,用户点击按钮触发的invoke请求中会携带完整的Teams客户端上下文,其中就包含当前客户端的实时locale值,你可以在该回调中捕获值存入会话配置。

目前没有办法直接从conversationUpdate事件的Activity中直接提取locale,上述方案是目前业内通用的替代实现方式。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.02 08:39:05