利用 Dialogflow Facebook Messenger 集成,您可以创建一个 Facebook Messenger 聊天机器人以与最终用户互动。
限制
此集成仅支持默认代理语言。
工作原理
集成的工作原理如下:
- 您创建一个使用 Facebook Messenger 平台的 Facebook 应用。
- 您配置 Dialogflow 集成和 Facebook 应用,以使其互相通信。
- Dialogflow 集成使用 Facebook Messenger API 向最终用户发送消息。
- Dialogflow 集成充当 Facebook Messenger 网络钩子接收来自最终用户的消息。
设置
如需设置集成,请执行以下操作:
按照 Facebook 应用开发中的步骤创建一个 Facebook 应用。
设置 Facebook 应用以使用 Facebook Messenger 平台。 请按照 设置 Facebook 应用 完成以下任务:
- 将 Messenger 平台添加到您的 Facebook 应用。
- 为您的应用订阅 Facebook 专页。 在此步骤中,系统会为您提供访问令牌。 复制此值。 此令牌将用于从 Dialogflow 控制台配置集成。
- 请勿配置网络钩子或测试集成。
从 Dialogflow 控制台配置集成:
- 转到 Dialogflow ES 控制台。
- 点击左侧边栏菜单中的集成。
- 点击 Facebook Messenger。
此时将打开一个配置对话框:
- 显示旧的回调网址 (Show old callback URL):如果显示此切换开关,则其默认关闭。这是一个临时选项,用于应用最近对 Facebook Messenger API 的修改。 除非收到 Dialogflow 支持团队的指示,否则请勿更改此切换开关。 更新完所有代理后 此选项将被移除。
- 回调网址 (Callback URL):复制此值。 此值将用于配置 Facebook Messenger 网络钩子。
- 验证令牌 (Verify Token):您可以输入所需的任何私有令牌。 复制此值。 此值将用于配置 Facebook Messenger 网络钩子。
- 页面访问令牌 (Page Access Token):输入您在创建 Facebook 页面时复制的访问令牌。
- 开始 (Start):点击即可为您的代理启动此集成服务。
完成 Facebook 应用的设置并进行测试。 请按照 设置 Facebook 应用 完成以下任务:
- 为您的应用配置 Facebook 网络钩子。使用您之前复制的回调网址和验证令牌的值。 请务必启用 messages 和 messaging_postbacks。
- 测试应用。
活动
此集成服务调用以下事件:
事件 | 说明 |
---|---|
FACEBOOK_WELCOME |
当最终用户与您的聊天机器人开始会话时触发。 |
富响应消息
此集成会将一些富响应消息消息转换为 Facebook Messenger 平台消息类型。
图片响应
图片响应将作为 Facebook Messenger 文件附件消息发送到 Facebook Messenger。
message.attachment.type
的值设置为 image
。
支持以下格式:
- jpg
- png
- 静态 gif
- 动态 gif
卡片响应
卡片响应将作为 Facebook Messenger 通用模板发送到 Facebook Messenger。
快速回复响应
快速回复响应将作为 Facebook Messenger 快速回复发送到 Facebook Messenger。
自定义载荷响应
如需发送其他类型的 Facebook Messenger 消息,您可以使用自定义载荷。
自定义载荷的一般格式如下所示:
{ "facebook": { message } }
提供 Facebook Messenger message
对象以替换 message
。
如需详细了解 message
对象,请参阅 Facebook Messenger API 参考文档。
例如:
- 发送音频链接:
{ "facebook": { "attachment": { "type": "audio", "payload": { "url": "https://example.com/audio/test.mp3" } } } }
- 发送可播放的视频:
{ "facebook": { "attachment": { "type": "video", "payload": { "url": "https://example.com/video.mp4" } } } }
- 发送文件:
{ "facebook": { "attachment": { "type": "file", "payload": { "url": "https://example.com/file.pdf" } } } }