Bot Framework v4 + Messenger 区域设置

Posted

技术标签:

【中文标题】Bot Framework v4 + Messenger 区域设置【英文标题】:Bot Framework v4 + Messenger locale 【发布时间】:2019-08-07 20:49:28 【问题描述】:

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

在 Skype 和 Teams 频道中,区域设置来自 ChannelData,但是,在 Facebook 上,我看不到区域设置。

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

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

如何让语言环境与 Facebook Messenger bot 一起使用?

【问题讨论】:

你使用的是 C# 还是 Node.js? 【参考方案1】:

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

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

【讨论】:

感谢您对此进行验证。我今天将对此进行调查。 是的,我在中间件中添加了对用户配置文件 API 的调用,现在可以提取语言环境。非常感谢!

以上是关于Bot Framework v4 + Messenger 区域设置的主要内容,如果未能解决你的问题,请参考以下文章

如何通过 Bot Framework 向 Teams 中的用户发送通知?

在bot框架v4中,如何通过评论框和提交按钮实施评分卡

如何在基于Bot framewok v4构建的团队聊天机器人中启用语音功能

Bot Framework Emulator 处理新成员的方式是不是与 Bot Framework Webchat 不同?

在公共领域托管 Bot(Microsoft Bot Framework)[重复]

Bot Framework:如何退出对话?