Медиашаблон

Медиашаблон позволяет отправлять изображения, GIF и видео в качестве структурированных сообщений, в которые можно добавить кнопку. Видео и анимированные GIF, отправленные в медиашаблоне, можно воспроизвести в переписке.

Медиашаблон можно отправить черезAPI Send, а также из веб-представления Messenger с помощью функции beginShareFlow() Messenger Extension SDK.

Только изображения и видео

В данный момент медиашаблоны позволяют отправлять только изображения и видео. Аудиофайлы пока не поддерживаются.

Содержание

Отправка медиафайла по ID вложения

Чтобы отправить изображение, отправьте запрос POST в API Send с указанным ниже свойством payload в тексте запроса, где attachment_id — это идентификатор, генерированный из API Attachment Upload. Для запросов со свойством attachment_id поддерживаются изображения и видео.

Все свойства запроса см. в справке по медиашаблонам.

Использование медиаданных с URL Facebook

ID вложения не поддерживаются для медиаданных с URL Facebook. Эти файлы уже кэшированы и должны быть вложены в медиашаблон вместе со своим URL 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>"

Отправка медиафайла по URL Facebook

Медиашаблон позволяет отправлять фото и видео, загруженные на Facebook. Для этого отправьте запрос POST на эндпойнт /messages, а в свойстве url запроса укажите URL Facebook:

Все свойства запроса см. в справке по медиашаблонам.

Только URL Facebook

Медиашаблон не поддерживает никакие внешние URL — только URL Facebook. Чтобы отправить изображение или видео с внешним URL, загрузите его с помощью API Attachment Upload и получите 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>"

Настройка URL Facebook

Чтобы настроить URL Facebook для изображения или видео, следуйте инструкциям ниже:

  1. Нажмите миниатюру изображения или видео, чтобы открыть его в полный размер.
  2. Скопируйте URL из адресной строки браузера.

URL Facebook должен иметь следующий формат:

Тип медиаданныхИсточник медиаданныхФормат 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>

Добавление кнопки

При необходимости в медиашаблон также можно добавить кнопки. Количество и типы поддерживаемых кнопок зависят от способа отправки медиашаблона — с помощью beginShareFlow() Messenger Extensions SDK или API Send:

  • Send API: можно включить до 3 кнопок любого типа.
  • beginShareFlow(): можно вложить только 1 кнопку с URL.

Чтобы добавить в медиашаблон кнопку, добавьте массив buttons в определение шаблона в тексте запроса.

Подробнее о доступных кнопках см. в разделе Кнопки.

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

Отклик API

В ответ на успешный запрос платформа Messenger возвращает recipient_id и message_id отправленного сообщения:

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