Referencia de la API de carga de adjuntos

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.

Subir un archivo adjunto

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.

Ejemplo de solicitud de subida desde una URL

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
               }
             }
           }
         }'

Ejemplo de solicitud de subida desde un archivo

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"}

Enviar un mensaje con un activo subido

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.

Ejemplo de solicitud de subida desde un archivo

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"}

Subir y enviar

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.

Ejemplo de solicitud de subida desde una URL

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"}

Propiedades

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

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

Tipo de adjunto. Debe ser uno de los siguientes:

  • imagen
  • vídeo
  • audio
  • archivo

payload

Objeto

Objeto payload que describe el adjunto.

message.attachment.payload

Propiedad Tipo Descripción

url

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.

is_reusable

Booleano

Opcional, adopta false como valor predeterminado.No lo establezcas en true si subes y envías el archivo en una sola llamada a la API.

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ódigos de error

Código del errorSubcódigoMensaje

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.