Bot Framework v4 + Messenger 语言环境

Bot Framework v4 + Messenger locale

我目前正在我的机器人中实施本地化,我使用 Bot Framework v4 在多个渠道上工作。

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

如果我将 Facebook 设置中的语言更改为非英语,仍然没有传入语言环境。

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

如何让语言环境与 Facebook Messenger 机器人一起工作?

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

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