Facebook Messenger

利用 Dialogflow Facebook Messenger 集成,您可以创建一个 Facebook Messenger 聊天机器人以与最终用户互动。

工作原理

集成的工作原理如下:

设置

如需设置集成,请执行以下操作:

  1. 按照 Facebook 应用开发中的步骤创建一个 Facebook 应用。

  2. 设置 Facebook 应用以使用 Facebook Messenger 平台。按照设置 Facebook 应用文档中的步骤完成以下操作:

    • 将 Messenger 平台添加到您的 Facebook 应用。
    • 为您的应用订阅 Facebook 专页。确保已在页面订阅中启用 messagesmessaging_postbacks
    • 在此步骤中,系统会为您提供访问令牌。复制此值。 此令牌将用于从 Dialogflow 控制台配置集成。
    • 请勿配置网络钩子或测试集成。
  3. 从 Dialogflow 控制台配置集成:

    1. 转到 Dialogflow CX 控制台
    2. 点击左侧面板上的管理标签页。
    3. 点击左侧边栏菜单中的集成
    4. 点击 Facebook Messenger 图块中的连接按钮。
    5. 此时将打开一个配置对话框:

      • 应用密钥:输入 Facebook 应用信息中心基本设置中的应用密钥。

      • 验证令牌:您可以输入所需的任何私有令牌。复制此值。此值将用于配置 Facebook Messenger 网络钩子。

      • 页面访问令牌:输入您在上述 Facebook 应用设置期间复制的访问令牌。

      • 启用开始按钮:请参阅“开始”按钮部分。

      • 网络钩子网址:复制此值。此值将用于配置 Facebook Messenger 网络钩子。

      • 开始:点击即可为您的代理启动此集成服务。

  4. 完成 Facebook 应用的设置并进行测试。按照设置 Facebook 应用文档中的步骤完成以下操作:

    • 为您的应用配置 Facebook 网络钩子。使用您之前复制的网络钩子网址验证令牌的值。请务必在页面订阅中启用 messagesmessaging_postbacks
    • 测试应用。

活动

此集成会调用以下事件。您可以创建自定义事件处理脚本来定义触发事件时要执行的操作。

Event 说明
FACEBOOK_WELCOME 最终用户点击 Facebook Messenger 开始按钮时触发。
FACEBOOK_MEDIA 当最终用户的消息包含附件(例如音频、图片、视频等)时触发。

“开始”按钮

如需设置 Facebook Messenger 开始按钮,请执行以下操作:

  1. 在启用此集成服务时切换启用开始按钮

    • 此集成服务将通过调用 Facebook Messenger Profile API 为您启用此按钮。

      curl -X POST \
      -H "Content-Type: application/json" \
      -d '{"get_started": {"payload": "FACEBOOK_WELCOME"}}' \
      "https://graph.facebook.com/v10.0/me/messenger_profile?access_token=${PAGE_ACCESS_TOKEN}"
      
  2. FACEBOOK_WELCOME 事件创建一个自定义事件处理脚本

要进行测试,请按以下步骤操作:

  1. 从 Facebook 页面中删除上一个对话(如果适用)。

    • 开始按钮仅会显示在新对话上。
  2. 使用您的 Facebook 页面启动新对话。

  3. 点击开始按钮,并验证自定义事件处理脚本的响应。

您可以随时调用 Facebook Messenger Profile API 以管理开始按钮。这可能有助于进行测试。

例如,以下请求会检查开始按钮的状态:

curl -X GET \
"https://graph.facebook.com/v10.0/me/messenger_profile?fields=get_started&access_token=${PAGE_ACCESS_TOKEN}"

以下请求会停用开始按钮:

curl -X DELETE \
-H "Content-Type: application/json" \
-d '{"fields": ["get_started"]}' \
"https://graph.facebook.com/v10.0/me/messenger_profile?access_token=${PAGE_ACCESS_TOKEN}"

富响应消息

可通过履行中的自定义载荷支持富响应消息。如需了解消息格式,请参阅 Facebook Messenger Send API 消息对象

例如,以下自定义载荷提供简单的文本消息:

{
  "text": "Hello, world"
}

以下自定义载荷提供图片消息:

{
  "attachment": {
    "type": "image",
    "payload": {
      "url": "https://example.com/test.jpg"
    }
  }
}