如何让Webchat向MS Bot Framework机器人发送国家代码实现多语言对话?
让Web Chat向Bot Framework机器人发送用户国家信息的方法
嗨,我来帮你搞定这个问题!要实现Web Chat把用户的国家/地区代码传递给Bot Framework机器人,有几个实用的方案,我给你详细说明:
方案一:在Web Chat初始化时附加用户国家信息
你可以先通过前端方式获取用户的国家代码(比如利用浏览器的navigator.language,它会返回类似zh-CN、en-US这样的语言+国家代码组合),然后在初始化Web Chat时,把这个信息添加到用户属性里。
示例代码:
// 提取用户的国家代码 const userLocale = navigator.language; const countryCode = userLocale.split('-')[1]; // 得到如"CN"、"US"这样的国家代码 // 初始化Web Chat,将国家代码附加到用户对象中 window.WebChat.renderWebChat({ directLine: window.WebChat.createDirectLine({ token: '你的Direct Line令牌' }), userID: '自定义用户ID', username: '自定义用户名', user: { id: '自定义用户ID', name: '自定义用户名', countryCode: countryCode } }, document.getElementById('webchat'));
在机器人端接收:
- 如果你用Node.js开发机器人,可以通过
turnContext.activity.from.properties.countryCode获取这个值 - 如果你用C#开发,就从
turnContext.Activity.From.Properties["countryCode"]读取
方案二:主动发送自定义事件给机器人
另一种方式是在Web Chat加载完成后,主动发送一个包含国家代码的自定义事件,这种方式更灵活,比如你可以在用户触发某个操作时再发送,而不是初始化时就发。
示例代码:
// 创建Direct Line连接 const directLine = window.WebChat.createDirectLine({ token: '你的Direct Line令牌' }); // 假设已经获取到国家代码 const countryCode = 'CN'; // 发送自定义事件 directLine.postActivity({ type: 'event', name: 'UserCountryInfo', // 自定义事件名称,机器人端要对应这个名称 value: { countryCode: countryCode }, from: { id: '自定义用户ID' } }).subscribe( id => console.log('国家信息事件发送成功,ID:', id), error => console.error('发送失败:', error) ); // 初始化Web Chat window.WebChat.renderWebChat({ directLine }, document.getElementById('webchat'));
在机器人端处理:
- Node.js:在
onEvent处理器中监听UserCountryInfo事件,从context.activity.value.countryCode获取值 - C#:在
OnEventActivityAsync方法中判断事件名称,然后读取activity.Value里的国家代码
方案三:后端注入国家代码(更准确)
如果你的Web Chat是通过后端渲染的,推荐这种方式:后端可以通过用户的请求IP解析出实际国家(或者从用户的登录信息、会话中获取地域),然后把国家代码注入到前端的Web Chat初始化代码里。这种方式比前端获取更准确,因为浏览器语言设置不一定和用户实际所在国家一致。
比如后端(以ASP.NET为例)可以在页面渲染时把国家代码传给前端:
<script> const countryCode = '@Model.CountryCode'; // 从后端模型获取 // 后续用这个countryCode执行方案一或方案二的逻辑 </script>
注意事项
navigator.language获取的是浏览器的语言设置,可能和用户实际所在国家不一致,如果需要精准的地域信息,建议结合后端IP解析- 确保机器人端和Web Chat端的事件名称、属性名称保持一致,避免接收不到数据
内容的提问来源于stack exchange,提问作者BoIde
相关产品推荐
相关产品推荐

