botframework - 来自 IEventActivity 的 BotFramework 用户文化
问题描述
我试图弄清楚如何在 OnEventActivityAsync 期间从我的聊天机器人中获取用户文化。我们的网络聊天发布了一个活动,该活动将触发来自机器人的欢迎消息。此欢迎信息必须使用用户的语言。
通常,我们会查看 IMessageActivity 语言环境属性。
IMessageActivity msg = context.Activity.AsMessageActivity();
string locale = msg.Locale;
但是,在 OnEventActivityAsync 中,参数属于 IEventActivity 类型,并且没有语言环境属性。关于如何在 OnEventActivityAsync 中获得文化的任何想法?
解决方案
BotFramework-WebChat 04.api/a.welcome-event示例演示了将用户的语言(区域设置)作为事件值发送。
const store = window.WebChat.createStore({}, ({ dispatch }) => next => action => {
if (action.type === 'DIRECT_LINE/CONNECT_FULFILLED') {
// When we receive DIRECT_LINE/CONNECT_FULFILLED action, we will send an event activity using WEB_CHAT/SEND_EVENT
dispatch({
type: 'WEB_CHAT/SEND_EVENT',
payload: {
name: 'webchat/join',
value: { language: window.navigator.language }
}
});
}
return next(action);
});
如果您首先读取事件值,设置要使用的语言环境,那么您将能够根据需要以用户的语言发送欢迎消息。
希望有帮助!
推荐阅读
- visual-studio-code - vs 代码任务手表
- postgresql - 合并PostgreSQL中的行并在不为空时用最新的替换值,但加入其他列
- vue.js - 我应该还是不应该在 vue3 中安装 body 元素?
- python - 如何在 Pandas 中给 to_excel() 一个在循环内改变的参数?
- c# - 模型在使用 C# 将 POST 方法作为参数传递给 ASP.NET MVC 中同一控制器的 GET 方法时获取 NULL
- vpc - 为什么 VPC 对等互连比单个 VPC 更安全?
- numbers - 如何在laravel中拆分输入值并保存在没有字符的数据库中
- javascript - 有没有办法减少 React 项目的大小?
- android - 当我设置 minifyEnabled = true 时,应用程序无法使用 API
- c++ - 播放使用 FFMPEG 创建的分段 MP4 时出现问题