Referencia de la API de subida de archivos adjuntos

ADVERTENCIA: Los identificadores del adjunto caducan después de 90 días. Después de que un identificador del adjunto caduque, tendrás que volver a subir tus archivos multimedia para obtener un identificador nuevo.

Aunque los adjuntos que se pueden volver a usar caducan después de 90 días y no se pueden volver a enviar, los de las cadenas de mensajes no caducan y son visibles hasta que un usuario borra el mensaje de la cadena. Si existe la posibilidad en tu caso de uso, puedes combinar los pasos de subida y envío, como mencionamos a continuación, para evitar este problema de TTL.

La API de subida de archivos adjuntos te permite cargar activos que se pueden enviar en mensajes posteriores. De esta manera, no será necesario que cargues varias veces los archivos que se utilizan con frecuencia. La API admite que se guarden activos de la URL y del sistema de archivos local.

También puedes usar la API de envío para enviar de manera simultánea un mensaje con un archivo adjunto y guardarlo para utilizarlo más adelante. Para obtener más información, consulta la sección Subir y enviar, a continuación.

Subir un archivo adjunto

Para cargar un archivo adjunto, envía una solicitud POST al punto de conexión /Your-page-id/message_attachment con message.attachment con type y payload. Para poder usar el recurso en varios mensajes, configura payload.is_reusable en true.

Ejemplo de solicitud de subida desde una URL

El formato se modificó para facilitar la lectura. Reemplaza 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
               }
             }
           }
         }'

Ejemplo de solicitud de subida desde un archivo

El formato se modificó para facilitar la lectura. Reemplaza 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 completa con éxito, la app recibirá un objeto JSON con attachment_id configurado en el identificador del archivo adjunto que se usará en los mensajes.

{"attachment_id": "Your-attachment-ID"}

Envía un mensaje con el recurso subido

Para enviar un mensaje con un recurso que subiste previamente, subido con message.attachment.payload.is_reusable configurado en true, envía una solicitud POST al punto de conexión /Your-page-id/messages con recipient.id, y el objeto message.attachment con type y payload.attachment_id.

Ejemplo de solicitud de subida desde un archivo

El formato se modificó para facilitar la lectura. Reemplaza 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 con éxito, la app recibirá un objeto JSON con success configurado para configurar en true.

{"success": "true"}

Subir y enviar

También puedes subir archivos multimedia y enviarlos en una única solicitud de la API.

ADVERTENCIA: En este caso,no configures is_public=true en la carga útil. Los adjuntos en la cadena de mensajes del usuario siempre son privados.

Ejemplo de solicitud de subida desde una URL

El formato se modificó para facilitar la lectura. Reemplaza 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 con éxito, la app recibirá un objeto JSON con success configurado para configurar en true.

{"success": "true"}

Propiedades

En el caso de archivos adjuntos de una URL, proporciona las propiedades del proceso en el cuerpo de la solicitud como objeto JSON. En el caso de los archivos adjuntos de un archivo, envía las propiedades como datos.

message

Description of the message to be sent.
Property Type Description

message.attachment

Object

An object describing attachments to the message.

message.attachment

Propiedad Tipo Descripción

type

Cadena

El tipo de adjunto. Debe ser alguno de los siguientes:

  • imagen
  • video
  • audio
  • archivo

payload

Objeto

El objeto payload que describe el archivo adjunto.

message.attachment.payload

Propiedad Tipo Descripción

url

Cadena

Opcional. URL del archivo que se debe cargar. El tamaño máximo de archivo es 8 MB en el caso de las imágenes, y de 25 MB, para todos los demás tipos de archivos (después de la codificación). Los videos tienen un tiempo de espera de 75 segundos; los demás tipos de archivos, de 10 segundos.

is_reusable

Booleano

Opcional, el valor predeterminado es falso.No lo configures en true si quieres realizar una subida y envío en una llamada a la API.

Configúralo en verdadero solo cuando realices la subida y el envío en pasos separados. Los identificadores del adjunto caducan después de 90 días. Para obtener un nuevo identificador del adjunto, vuelve a subir tu contenido multimedia una vez pasados los 90 días.

Aunque los adjuntos que se pueden volver a usar caducan después de 90 días y no se pueden volver a enviar, los de las cadenas de mensajes no caducan y son visibles hasta que un usuario borre el mensaje de la cadena.

Códigos de error

Código de errorSubcódigoMensaje

100

2018074

Posible identificador no válido o no posees el archivo adjunto.

100

2018008

Error al obtener el archivo de la URL. Verifica que la URL sea válida, cuente con un certificado SSL y un tamaño de archivo válidos, y que el servidor responde lo suficientemente rápido para evitar exceder los tiempos de espera.

100

2018294

La carga del video excedió el tiempo de espera o está corrupto. Ten en cuenta, si no se obtiene el video dentro de 75 segundos, se excederá el tiempo de espera.

100

2018047

Error en la carga del archivo adjunto. Una forma común de activar este error es que el tipo de contenido multimedia proporcionado no coincida con el tiempo de archivo que se proporcionó en la URL.