首页 > 解决方案 > 来自 IEventActivity 的 BotFramework 用户文化

问题描述

我试图弄清楚如何在 OnEventActivityAsync 期间从我的聊天机器人中获取用户文化。我们的网络聊天发布了一个活动,该活动将触发来自机器人的欢迎消息。此欢迎信息必须使用用户的语言。

通常,我们会查看 IMessageActivity 语言环境属性。

IMessageActivity msg = context.Activity.AsMessageActivity();
string locale = msg.Locale;

但是,在 OnEventActivityAsync 中,参数属于 IEventActivity 类型,并且没有语言环境属性。关于如何在 OnEventActivityAsync 中获得文化的任何想法?

标签: botframework

解决方案


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);
});

如果您首先读取事件值,设置要使用的语言环境,那么您将能够根据需要以用户的语言发送欢迎消息。

希望有帮助!


推荐阅读