Сохранение объектов

Чтобы оптимизировать отправку объектов, вы можете сохранять отправленные объекты с помощью платформы Messenger. Это может быть полезно, когда вы планируете отправлять одни и те же вложения несколько раз, так как в этом случае вам не придется загружать объект при каждом запросе.

На платформе Messenger есть два API, позволяющих сохранять объекты для последующего использования: API Send и API Attachment Upload. Оба API позволяют сохранять объекты по URL и из локальной файловой системы.

Содержание

Поддерживаемые типы объектов

Платформа Messenger поддерживает сохранение следующих типов объектов (размером до 25 МБ):

  • изображения;
  • аудио (заголовок Content-Type должен иметь тип audio, например audio/mp3);
  • видео;
  • файлы.

Сохранение с помощью API Send

API Send позволяет сохранить отправленный в сообщении объект. Это альтернатива предварительной загрузке с помощью API Attachment Upload. Чтобы сделать это, отправьте к конечной точке /messages запрос POST, задав для параметра payload.is_reusable значение true.

Сохранение по URL

Чтобы сохранить объект по URL, укажите URL-источник в свойстве payload.url объекта attachment вашего сообщения:

{
  "recipient":{
    "id":"

For a complete list of API calls and request properties, see the Send API Reference.

Сохранение из файла

Чтобы сохранить объект из локальной файловой системы, отправьте запрос сообщения к API Send в виде данных формы и укажите расположение файла в поле filedata запроса:

curl  \
  -F 'recipient={"id":"<PSID>"}' \
  -F 'message={"attachment":{"type":"<ASSET_TYPE>", "payload":{"is_reusable":true}}}' \
  -F 'filedata=@/tmp/shirt.png;type=image/png' \
  "https://graph.facebook.com/v21.0/me/messages?access_token=<PAGE_ACCESS_TOKEN>"  
  

For a complete list of API calls and request properties, see the Send API Reference.

Ответ API

Ответ будет содержать attachment_id, с помощью которого можно добавлять объект в последующие сообщения. Обратите внимание: ID является конфиденциальным. Его может повторно использовать только та страница, которая изначально отправила вложение.

{
  "recipient_id": "1254444444682919",
  "message_id": "mid.$cAAJsujCd2ORkHh27-ld7NhzuqrUK",
  "attachment_id": "687799999980546"
}

Сохранение с помощью API Attachment Upload

API Attachment Upload позволяет загружать объекты заранее. Это может пригодиться, если вы точно знаете, что определенные объекты нужно будет отправлять несколько раз. Для этого отправьте запрос POST к конечной точке /message_attachments.

Полный список вызовов API и свойств запроса см. в справке по API Attachment Upload.

Сохранение по URL

Чтобы сохранить объект по URL, укажите URL-источник в свойстве payload.url объекта attachment вашего сообщения:

curl -X POST -H "Content-Type: application/json" -d '{
  "message":{
    "attachment":{
      "type":"image", 
      "payload":{
        "is_reusable": true,
        "url":"http://www.messenger-rocks.com/image.jpg"
      }
    }
  }
}' "https://graph.facebook.com/v2.6/me/message_attachments?access_token=<PAGE_ACCESS_TOKEN>"

Полный список вызовов API и свойств запроса см. в справке по API Attachment Upload.

Сохранение из файла

Чтобы сохранить объект из локальной файловой системы, отправьте запрос сообщения к API Attachment Upload в виде данных формы и укажите расположение файла в поле filedata запроса:

curl  \
  -F 'recipient={"id":"<PSID>"}' \
  -F 'message={"attachment":{"type":"<ASSET_TYPE>", "payload":{"is_reusable":true}}}' \
  -F 'filedata=@/tmp/shirt.png;type=image/png' \
  "https://graph.facebook.com/v21.0/me/messages?access_token=<PAGE_ACCESS_TOKEN>"  
  

Ответ API

Ответ будет содержать attachment_id, с помощью которого можно добавлять объект в последующие сообщения. Обратите внимание: ID является конфиденциальным. Его может повторно использовать только та страница, которая изначально отправила вложение.

{
  "attachment_id":"1857777774821032"
}

Отправка сохраненных объектов

Получив attachment_id сохраненного объекта, вы можете с его помощью добавлять объект в сообщение. Подробную информацию см. в этом разделе.

Поддержка разработчиков