Attachment Upload API позволяет загружать объекты, которые позднее можно отправлять в сообщениях. Благодаря этому вам не нужно загружать часто используемые файлы несколько раз. Этот API поддерживает сохранение объектов из URL и из локальной файловой системы.
Кроме того, можно использовать Send API, чтобы одновременно отправлять сообщение с вложением и сохранять вложения для использования в будущем. Дополнительную информацию см. в статье Справка по Send API.
Чтобы загрузить вложение, отправьте к конечной точке /
Your-page-id
/message_attachment
запрос POST
с объектом message.attachment
и свойствами type
и payload
. Чтобы этот объект можно было использовать в нескольких сообщениях, задайте для свойства payload.is_reusable
значение true
.
Для удобства чтения применено форматирование. Замените выделенный жирным шрифтом и курсивом текст, например page_access_token, собственными значениями.
curl -X POST "https://graph.facebook.com/v19.0
/Your-page-id/message_attachment" \
-H "Content-Type: application/json" \
-d '{
"access_token":"Your_page_access_token",
"message":{
"attachment":{
"type":"image",
"payload":{
"url":"https.your-url.com/image.jp",
"is_reusable": true
}
}
}
}'
Для удобства чтения применено форматирование. Замените выделенный жирным шрифтом и курсивом текст, например page_access_token, собственными значениями.
curl -X POST "https://graph.facebook.com/v19.0
/Your-page-id/message_attachment" \
-H "Content-Type: application/json" \
-d '{
"access_token":"Your_page_access_token",
"message":{
"attachment":{
"type":"image"
}
},
"filedata":"@/path-to-your-file/image.png";"type":"image/png"
}'
В случае успеха приложение получит объект JSON с идентификатором attachment_id
, которому назначено ID вашего вложения, чтобы использовать его в ваших сообщениях.
{"attachment_id": "Your-attachment-ID"}
Чтобы отправить сообщение с ранее загруженным объектом, свойство message.attachment.payload.is_reusable
которого имеет значение true
, отправьте к конечной точке /
Your-page-id
/messages
запрос POST
с recipient.id
и объектом message.attachment
со свойствами type
и payload.attachment_id
.
Для удобства чтения применено форматирование. Замените выделенный жирным шрифтом и курсивом текст, например page_access_token, собственными значениями.
curl -X POST "https://graph.facebook.com/v19.0
/Your-page-id/messages" \
-H "Content-Type: application/json" \
-d '{
"access_token":"Your_page_access_token",
"message":{
"attachment":{
"type":"image",
"payload":{
"attachment_id":"Your-attachment-ID"
}
}
}
}'
В случае успеха приложение получит объект JSON, в котором для параметра success
установлено значение true
.
{"success": "true"}
Для вложений из URL предоставьте свойства follow в основном тексте запроса в качестве объекта JSON. Для вложений из файла отправьте свойства как данные формы.
message
Property | Type | Description |
---|---|---|
| Object | An object describing attachments to the message. |
message.attachment
Свойство | Тип | Описание |
---|---|---|
| Строка | Тип вложения. Это может быть один из следующих типов:
|
| Объект | Объект |
message.attachment.payload
Свойство | Тип | Описание |
---|---|---|
| Строка | Необязательный параметр. URL файла для загрузки. Максимальный размер файла составляет 8 Мбайт для изображений и 25 Мбайт для всех остальных типов файлов (после кодирования). Таймаут установлен как 75 секунд для видеофайлов и 10 секунд для всех остальных типов файлов. |
| Логическое значение | Необязательный параметр. Укажите |
Код ошибки | Подкод | Сообщение |
---|---|---|
100 | 2018074 | Возможно, неверный ID или вы не являетесь владельцем вложения. |
100 | 2018008 | Не удалось получить файл из URL. Убедитесь, что используется верный URL с действительным сертификатом SSL, файл не превышает установленное значение, а сервер отвечает достаточно быстро во избежание превышения таймаутов. |
100 | 2018294 | Превышено установленное время загрузки видеофайла или видеофайл поврежден. Обратите внимание, что если видеофайл не был получен в течение 75 секунд, установленное время будет превышено. |
100 | 2018047 | Не удалось загрузить вложение. Частой причиной этой ошибки является то, что предоставленный тип медиаобъекта не соответствует типу файла, указанному в URL. |