我目前正在我的机器人中实现本地化,并且使用Bot Framework v4在多个渠道上都可以使用它。
在Skype和Teams频道中,语言环境以ChannelData的形式出现,但是在Facebook上,我看不到语言环境。
如果我将Facebook设置中的语言更改为非英语,则区域设置仍不会传入。
当前,我确定语言环境的唯一方法是根据用户的话语自动检测语言。
如何使语言环境与Facebook Messenger机器人一起使用?
答案 0 :(得分:2)
Facebook Messenger在message payload中不包含locale
,因此在channelData
属性中不存在。
您可以通过查询User Profile API来接收用户的locale
。请注意,您需要具有pages_user_locale
权限才能查询语言环境字段。
解决此问题的一种方法是为频道为Facebook的每条新消息创建一个queries the API的中间件。之后,将语言环境保存在userState中,并将其应用于传入的消息,因此无需更改您的机器人代码。在中间件中,您可以构建一些逻辑来从状态中检索语言环境,而不是在每条新消息上查询它。