Subir un archivo

La API de subida reanudable te permite subir archivos grandes a la gráfica social de Meta y reanudar las sesiones de subida interrumpidas sin tener que empezar de nuevo. Una vez que hayas subido tu archivo, podrás publicarlo.

Las referencias a los puntos de conexión que admiten identificadores de archivos subidos indicarán si los puntos de conexión son compatibles con los identificadores que devuelve la API de subida reanudable.

Antes de empezar

En esta guía se presupone que has leído las guías Información general sobre la API Graph y Desarrollo en Meta, y que has realizado las acciones necesarias para el desarrollo con Meta.

Necesitarás lo siguiente:

  • Un ID de la app de Meta
  • Un archivo en uno de los siguientes formatos:
    • pdf
    • jpeg
    • jpg
    • png
  • Un token de acceso de usuario.

Paso 1: Iniciar una sesión de subida

Para comenzar una sesión de subida, envía una solicitud POST al punto de conexión /<APP_ID>/uploads, donde <APP_ID> es el identificador de Meta de tu app, con los siguientes parámetros obligatorios:

  • file_name: el nombre de tu archivo
  • file-length: el tamaño del archivo en bytes
  • file-type: el tipo MIME del archivo Los valores válidos son: application/pdf, image/jpeg, image/jpg, image/png y video/mp4

Sintaxis de la solicitud

El formato se modificó para facilitar la lectura.

curl -i -X POST "https://graph.facebook.com/v21.0/<APP_ID>/uploads
  ?file_name=<FILE_NAME>
  &file_length=<FILE_LENGTH>
  &file_type=<FILE_TYPE>
  &access_token=<USER_ACCESS_TOKEN>"

Si la operación se realiza con éxito, tu app recibirá una respuesta JSON que contiene el identificador de sesión de subida.

{
  "id": "upload:<UPLOAD_SESSION_ID>"
}

Paso 2: Comenzar la subida

Empieza a subir el archivo enviando una solicitud POST al punto de conexión /upload:<UPLOAD_SESSION_ID> con el siguiente file_offset fijado en 0.

Sintaxis de la solicitud

curl -i -X POST "https://graph.facebook.com/v21.0/upload:<UPLOAD_SESSION_ID>"
  --header "Authorization: OAuth <USER_ACCESS_TOKEN>"
  --header "file_offset: 0"
  --data-binary @<FILE_NAME>

Debes incluir el token de acceso en el encabezado; en caso contrario, se producirá un error en la llamada.

Si la operación se realiza con éxito, tu app recibirá el identificador de archivos que utilizarás en tus llamadas a la API para publicar el archivo en tu punto de conexión.

{
  "h": "<UPLOADED_FILE_HANDLE>"
}

Ejemplo de respuesta

{
    "h": "2:c2FtcGxl..."
}

Reanudar una subida interrumpida

Si iniciaste una sesión de subida, pero toma más tiempo del que se espera o se interrumpió, envía una solicitud GET al punto de conexión /upload:<UPLOAD_SESSION_ID> del Paso 1.

Sintaxis de la solicitud

El formato se modificó para facilitar la lectura.

curl -i -X GET "https://graph.facebook.com/v21.0/upload:<UPLOAD_SESSION_ID>"
  --header "Authorization: OAuth <USER_ACCESS_TOKEN>""

Si la operación se realiza con éxito, tu app recibirá una respuesta JSON con el valor file_offset, que puedes usar para reanudar el proceso de subida desde donde se interrumpió.

{
  "id": "upload:<UPLOAD_SESSION_ID>"
  "file_offset": <FILE_OFFSET>"
}

Usa este valor file_offset para enviar otra solicitud POST como en el Paso 2. Esto reanudará el proceso de subida desde el punto donde se interrumpió.

Próximos pasos