Facebook 的 Messenger

使用 Dialogflow Facebook Messenger 整合功能,即可建立 Facebook Messenger 機器人,與終端使用者互動。

限制

這項整合功能只支援預設代理程式語言

運作方式

整合方式如下:

設定

如要設定整合,請按照下列步驟操作:

  1. 按照相關步驟建立 Facebook 應用程式: Facebook 應用程式開發

  2. 設定 Facebook 應用程式,以使用 Facebook Messenger 平台。 請按照「 設定 Facebook 應用程式」 文件中的步驟,完成下列操作:

    • 將 Messenger 平台新增至 Facebook 應用程式。
    • 將應用程式訂閱至 Facebook 粉絲專頁。 您會在步驟中取得存取權杖。 複製這個值。 這個權杖用於透過 Dialogflow 主控台設定整合功能。
    • 請勿設定 Webhook 或測試整合服務。
  3. 在 Dialogflow 控制台中設定整合:

    1. 前往 Dialogflow ES 主控台
    2. 按一下左側欄選單中的「整合」
    3. 按一下「Facebook Messenger」
    4. 設定對話方塊隨即開啟:

      • 顯示舊版回呼網址: 如果顯示這個切換按鈕,預設會處於關閉狀態。 這是暫時選項,用來因應 Facebook Messenger API 最近的修改。除非 Dialogflow 支援團隊指示,否則請勿變更這個切換鈕。所有代理程式更新完畢後,這個選項就會移除。
      • 回呼網址: 複製這個值。 用於設定 Facebook Messenger Webhook。
      • 「Verify Token」(驗證憑證): 您可以輸入任何需要的私密權杖。 複製這個值。 用於設定 Facebook Messenger Webhook。
      • 粉絲專頁存取權杖: 輸入建立 Facebook 粉絲專頁時複製的存取權杖。
      • 開始:按一下即可為代理程式啟動這項整合服務。
  4. 完成 Facebook 應用程式設定並進行測試。 請按照「 設定 Facebook 應用程式」 文件中的步驟,完成下列操作:

    • 為應用程式設定 Facebook Webhook。 使用您在前述步驟複製的「Callback URL」和「Verify Token」值。 請務必啟用 messagesmessaging_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"
          }
        }
      }
    }