媒體範本

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

您可透過傳送 API 傳送媒體範本,也可以從 Messenger WebView 使用 Messenger 擴充功能 SDK 的 beginShareFlow() 函數傳送。

僅限圖像和影片

媒體範本目前僅支援傳送圖像和影片,目前尚未支援傳送音訊。

主題內容

藉由附件編號傳送媒體

若要傳送圖像,請向傳送 API 傳送 POST 要求,並在要求主體中指定以下 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 的影片和相片,方法是向 /messages 端點傳送 POST 要求,並在要求的 url 屬性中指定 Facebook 網址:

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

僅限 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 平台會以所傳送訊息的 recipient_idmessage_id 做為回應:

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