Чтобы оптимизировать отправку объектов, вы можете сохранять отправленные объекты с помощью платформы Messenger. Это может быть полезно, когда вы планируете отправлять одни и те же вложения несколько раз, так как в этом случае вам не придется загружать объект при каждом запросе.
На платформе Messenger есть два API, позволяющих сохранять объекты для последующего использования: API Send и API Attachment Upload. Оба API позволяют сохранять объекты по URL и из локальной файловой системы.
Платформа Messenger поддерживает сохранение следующих типов объектов (размером до 25 МБ):
Content-Type
должен иметь тип audio
, например audio/mp3
);API Send позволяет сохранить отправленный в сообщении объект. Это альтернатива предварительной загрузке с помощью API Attachment Upload. Чтобы сделать это, отправьте к конечной точке /messages
запрос POST
, задав для параметра payload.is_reusable
значение true
.
Чтобы сохранить объект по 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.
Ответ будет содержать attachment_id
, с помощью которого можно добавлять объект в последующие сообщения. Обратите внимание: ID является конфиденциальным. Его может повторно использовать только та страница, которая изначально отправила вложение.
{
"recipient_id": "1254444444682919",
"message_id": "mid.$cAAJsujCd2ORkHh27-ld7NhzuqrUK",
"attachment_id": "687799999980546"
}
API Attachment Upload позволяет загружать объекты заранее. Это может пригодиться, если вы точно знаете, что определенные объекты нужно будет отправлять несколько раз. Для этого отправьте запрос POST
к конечной точке /message_attachments
.
Полный список вызовов API и свойств запроса см. в справке по API Attachment Upload.
Чтобы сохранить объект по 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>"
Ответ будет содержать attachment_id
, с помощью которого можно добавлять объект в последующие сообщения. Обратите внимание: ID является конфиденциальным. Его может повторно использовать только та страница, которая изначально отправила вложение.
{
"attachment_id":"1857777774821032"
}
Получив attachment_id
сохраненного объекта, вы можете с его помощью добавлять объект в сообщение. Подробную информацию см. в этом разделе.