メディアテンプレート

メディアテンプレートでは、画像、GIF、動画を構造化メッセージとして、任意のボタンとともに送信できます。メディアテンプレートで送信された動画とアニメーションGIFは、スレッド内で再生できます。

メディアテンプレートは、送信API経由で送信したり、MessengerエクステンションSDKのbeginShareFlow()機能を使ってMessengerウェブビューから送信したりできます。

画像と動画のみ

現時点では、メディアテンプレートでは画像と動画の送信のみがサポートされています。音声は現在サポートされていません。

内容

添付IDでメディアを送信する

画像を送信するには、POSTリクエストを送信APIに送り、リクエスト本文に次のpayloadプロパティを含めます。attachment_idは、attachment upload APIから生成されたIDです。 attachment_idプロパティを使用したリクエストでは、画像と動画がサポートされます。

リクエストプロパティについて詳しくは、メディアテンプレートのリファレンスをご覧ください。

Facebook URLからメディアを再利用する

添付IDは、Facebook URLからのメディアではサポートされていません。これらのファイルはすでにキャッシュに保存されており、Facebook URLを使用してメディアテンプレートに添付できます。

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 URLでメディアを送信する

メディアテンプレートでは、POSTリクエストを/messagesエンドポイントに送り、リクエストのurlプロパティにFacebook URLを使用することによって、Facebookにアップロードされた動画や写真を送信できます。

リクエストプロパティについて詳しくは、メディアテンプレートのリファレンスをご覧ください。

Facebook URLのみ

メディアテンプレートで使用できるのはFacebookのURLのみで、外部URLは使用できません。外部URLの画像や動画を送信するには、Attachment Upload 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 URLを取得する

画像または動画のFacebook URLを取得するには、以下を行います。

  1. 画像または動画のサムネイルをクリックし、フルサイズで表示します。
  2. ブラウザーのアドレスバーからURLをコピーします。

Facebook URLの基本フォーマットは以下のとおりです。

メディアタイプメディアソースURLフォーマット

動画

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():URLタイプのボタンを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"
}