媒體範本

媒體範本可讓您以結構化訊息的形式傳送圖像、GIF 和影片,並附上一個自選按鈕。與媒體範本一起傳送的影片和動畫 GIF,可在對話中播放。

媒體範本可使用 Messenger 擴充功能 SDK 的 beginShareFlow() 函式,透過傳送 API 或從 Messenger webview 傳送。

僅限圖像和影片

目前,媒體範本僅支援傳送圖像和影片,不支援傳送語音。

內容

按照附件編號傳送媒體

若要傳送圖像,請傳送 POST 要求到傳送 API,並在要求內文中加入下列 payload 屬性,其中 attachment_id 是從附件上載 API 產生的編號。 如果是使用 attachment_id 屬性的要求,則可支援圖像和影片。

如需有關要求屬性的完整詳細資料,請參閱媒體範本參考資料

重複使用來自 Facebook 網址的媒體

附件編號不適用於來自 Facebook 網址的媒體。這些檔案已經過快取,且應與 Facebook 網址一起附加到媒體範本。

curl -X POST -H "Content-Type: application/json" -d '{
  "recipient":{
    "id":"<PSID>"
  },
  "message":{
    "attachment": {
      "type": "template",
      "payload": {
         "template_type": "media",
         "elements": [
            {
               "media_type": "<image|video>",
               "attachment_id": "<ATTACHMENT_ID>"
            }
         ]
      }
    }    
  }
}' "https://graph.facebook.com/v2.6/me/messages?access_token=<PAGE_ACCESS_TOKEN>"

按照 Facebook 網址傳送媒體

媒體範本可讓您傳送已上載到 Facebook 的影片和相片,方法是將 POST 要求與當中 url 屬性的 Facebook 網址一起傳送到 /messages 端點:

如需有關要求屬性的完整詳細資料,請參閱媒體範本參考資料

僅限 Facebook 網址

媒體範本不允許任何外部網址,只允許 Facebook 上的網址。若要傳送包含外部網址的圖像或影片,請使用附件上載 API 上載,並取得 attachment_id

curl -X POST -H "Content-Type: application/json" -d '{
  "recipient":{
    "id":"<PSID>"
  },
  "message":{
    "attachment": {
      "type": "template",
      "payload": {
         "template_type": "media",
         "elements": [
            {
               "media_type": "<image|video>",
               "url": "<FACEBOOK_URL>"
            }
         ]
      }
    }    
  }
}' "https://graph.facebook.com/v2.6/me/messages?access_token=<PAGE_ACCESS_TOKEN>"

取得 Facebook 網址

若要取得圖像或影片的 Facebook 網址,請完成下列操作:

  1. 點擊圖像或影片縮圖,開啟正常大小的檢視畫面。
  2. 從瀏覽器網址列複製網址。

Facebook 網址應該會使用下列基本格式:

媒體類型媒體來源網址格式

影片

Facebook 專頁

https://business.facebook.com/<PAGE_NAME>/videos/<NUMERIC_ID>

影片

Facebook 帳戶

https://www.facebook.com/<USERNAME>/videos/<NUMERIC_ID>/

圖像

Facebook 專頁

https://business.facebook.com/<PAGE_NAME>/photos/<NUMERIC_ID>

圖像

Facebook 帳戶

https://www.facebook.com/photo.php?fbid=<NUMERIC_ID>

新增按鈕

您也可以選擇將按鈕附加到媒體範本。支援按鈕的數量和類型,會因您是配搭 Messenger 擴充功能 SDK beginShareFlow() 使用媒體範本,還是透過傳送 API 傳送媒體範本而異:

  • Send API:每一種按鈕最多只能附加 3 個。
  • beginShareFlow():每一種網址最多只能附加 1 個按鈕。

若要在媒體範本中加入按鈕,請在要求內文的範本定義中加入 buttons 陣列。

若要進一步瞭解可用的按鈕,請參閱按鈕

"elements": [
   {
      "media_type": "image",
      "url": "<MEDIA_URL>",
      "buttons": [
         {
            "type": "web_url",
            "url": "<WEB_URL>",
            "title": "View Website",
         }
      ]
   }
]

API 回應

成功時,Messenger Platform 會作出回應,並傳送訊息的 recipient_idmessage_id

{
  "recipient_id": "1254477777772919",
  "message_id": "AG5Hz2Uq7tuwNEhXfYYKj8mJEM_QPpz5jdCK48PnKAjSdjfipqxqMvK8ma6AC8fplwlqLP_5cgXIbu7I3rBN0P"
}