Bot Framework v4 + Messenger语言环境

时间:2019-08-07 20:49:28

标签: botframework facebook-messenger-bot

我目前正在我的机器人中实现本地化,并且使用Bot Framework v4在多个渠道上都可以使用它。

在Skype和Teams频道中,语言环境以ChannelData的形式出现,但是在Facebook上,我看不到语言环境。

如果我将Facebook设置中的语言更改为非英语,则区域设置仍不会传入。

当前,我确定语言环境的唯一方法是根据用户的话语自动检测语言。

如何使语言环境与Facebook Messenger机器人一起使用?

1 个答案:

答案 0 :(得分:2)

Facebook Messenger在message payload中不包含locale,因此在channelData属性中不存在。 您可以通过查询User Profile API来接收用户的locale。请注意,您需要具有pages_user_locale权限才能查询语言环境字段。

解决此问题的一种方法是为频道为Facebook的每条新消息创建一个queries the API的中间件。之后,将语言环境保存在userState中,并将其应用于传入的消息,因此无需更改您的机器人代码。在中间件中,您可以构建一些逻辑来从状态中检索语言环境,而不是在每条新消息上查询它。