ADVERTENCIA: Los identificadores de los adjuntos caducan después de 90 días. Después de que el identificador de un adjunto caduque, tendrás que volver a cargar el archivo multimedia para obtener un nuevo identificador del adjunto.
Aunque los adjuntos reutilizables caducarán después de 90 días y no se podrán volver a enviar, los adjuntos de los hilos de mensajes no caducarán nunca y serán visibles hasta que el usuario elimine el mensaje del hilo. Si tu caso de uso lo permite, puedes combinar los pasos de subida y envío para evitar este problema con el tiempo de vida, como se explica a continuación.
La API de carga de adjuntos te permite subir activos que se pueden enviar en mensajes más adelante. De este modo, no hace falta que subas varias veces archivos que utilizas de forma habitual. La API admite la posibilidad de guardar activos desde una URL o desde tu sistema de archivos local.
También puedes usar la Send API para enviar un mensaje con un adjunto y, al mismo tiempo, guardar dicho adjunto para usarlo más adelante. Para obtener más información, consulta la sección Subir y enviar a continuación.
Para subir un archivo adjunto, envía una solicitud POST
al extremo /
Your-page-id
/message_attachments
con message.attachment
con type
y payload
. Para poder usar el activo en varios mensajes, establece payload.is_reusable
en true
.
Se ha aplicado formato para mejorar la legibilidad. Sustituye los valores en negrita y cursiva, como page_access_token, por tus valores.
curl -X POST "https://graph.facebook.com/v21.0
/Your-page-id/message_attachments" \
-H "Content-Type: application/json" \
-d '{
"access_token":"Your_page_access_token",
"message":{
"attachment":{
"type":"image",
"payload":{
"url":"https://your-url.com/image.jpg",
"is_reusable": true
}
}
}
}'
Se ha aplicado formato para mejorar la legibilidad. Sustituye los valores en negrita y cursiva, como page_access_token, por tus valores.
curl -X POST -H "Content-Type: application/json" -d '{
"message": {
"attachment": {
"type": "image"
}
},
"filedata": "@/path-to-your-file/image.jpg",
"type": "image/png"
}' "https://graph.facebook.com/v21.0
/{PAGE_ID}/message_attachments?access_token={PAGE_ACCESS_TOKEN}"
Si la operación se realiza correctamente, la aplicación recibirá un objeto JSON con el valor de attachment_id
establecido en el identificador del archivo adjunto que se usará en los mensajes.
{"attachment_id": "Your-attachment-ID"}
Para enviar un mensaje con un activo que hayas subido previamente (subido con el valor de message.attachment.payload.is_reusable
establecido en true
), envía una solicitud POST
al extremo /
Your-page-id
/messages
con recipient.id
y el objeto message.attachment
con type
y payload.attachment_id
.
Se ha aplicado formato para mejorar la legibilidad. Sustituye los valores en negrita y cursiva, como page_access_token, por tus valores.
curl -X POST -H "Content-Type: application/json" -d '{
"recipient": {
"id": "{PSID}"
},
"message": {
"attachment": {
"type": "image",
"payload": {
"attachment_id": "Your-attachment-ID"
}
}
}
}' "https://graph.facebook.com/v21.0
/{PAGE_ID}/messages?access_token={PAGE_ACCESS_TOKEN}"
Si la operación se realiza correctamente, la aplicación recibirá un objeto JSON con el parámetro success
establecido en true
.
{"success": "true"}
También puedes subir contenido multimedia y enviarlo en una sola solicitud de API.
ADVERTENCIA:No establezcas el parámetro is_public=true
en la carga útil para este caso. Los adjuntos de los hilos de mensajes del usuario siempre son privados.
Se ha aplicado formato para mejorar la legibilidad. Sustituye los valores en negrita y cursiva, como page_access_token, por tus valores.
curl -X POST -H "Content-Type: application/json" -d '{
"recipient": {
"id": "{PSID}"
},
"message": {
"attachment": {
"type": "image",
"payload": {
"url": "https://your-url.com/image.jpg"
}
}
}
}' "https://graph.facebook.com/v21.0
/{PAGE_ID}/messages?access_token={PAGE_ACCESS_TOKEN}"
Si la operación se realiza correctamente, la aplicación recibirá un objeto JSON con el parámetro success
establecido en true
.
{"success": "true"}
Para los adjuntos procedentes de una URL, proporciona las propiedades siguientes en el cuerpo de la solicitud como objeto JSON. En el caso de los adjuntos que proceden de un archivo, envía las propiedades como datos de formulario.
message
Property | Type | Description |
---|---|---|
| Object | An object describing attachments to the message. |
message.attachment
Propiedad | Tipo | Descripción |
---|---|---|
| Cadena | Tipo de adjunto. Debe ser uno de los siguientes:
|
| Objeto | Objeto |
message.attachment.payload
Propiedad | Tipo | Descripción |
---|---|---|
| Cadena | Opcional. URL del archivo que se va a subir. El tamaño máximo del archivo es 8 MB en el caso de las imágenes y 25 MB para todos los demás tipos de archivos (después de la codificación). Se establece un límite de tiempo de espera de 75 segundos en el caso de los vídeos y de 10 segundos para todos los demás tipos de archivos. |
| Booleano | Opcional, adopta false como valor predeterminado.No lo establezcas en Establécelo en true únicamente cuando subas y envíes el archivo en pasos separados. Los identificadores de los adjuntos caducan después de 90 días. Vuelve a subir el archivo multimedia para obtener un nuevo identificador de adjunto después de 90 días. Aunque los adjuntos reutilizables caducarán después de 90 días y no se podrán volver a enviar, los adjuntos de los hilos de mensajes no caducarán nunca y serán visibles hasta que el usuario elimine el mensaje del hilo. |
Código del error | Subcódigo | Mensaje |
---|---|---|
100 | 2018074 | Posible identificador no válido o no eres el propietario del adjunto. |
100 | 2018008 | No se ha podido obtener el archivo de la URL. Comprueba que la URL es válida, que tiene un certificado SSL válido, que el tamaño del archivo es válido y que el servidor responde lo suficientemente rápido como para no agotar el tiempo de espera. |
100 | 2018294 | Se ha agotado el tiempo de espera de carga del vídeo o el vídeo está corrupto. Ten en cuenta que si el vídeo no puede recuperarse en 75 segundos, se agotará el tiempo de espera. |
100 | 2018047 | No se ha podido subir el adjunto. Una forma habitual de obtener este error es cuando el tipo de archivo multimedia proporcionado no coincide con el tipo de archivo proporcionado en la URL. |