Subir un archivo

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

En las referencias de los extremos que son compatibles con los identificadores de archivos subidos se indicará si los extremos admiten 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 de la API Graph y Desarrollo de Meta y has realizado las acciones necesarias para desarrollar con Meta.

Necesitarás lo siguiente:

  • Identificador de aplicación de Meta.
  • Archivo en uno de los formatos siguientes:
    • pdf
    • jpeg
    • jpg
    • png
  • Identificador de acceso de usuario.

Paso 1: Iniciar una sesión de subida

Para iniciar una sesión de subida, envía una solicitud POST al extremo /<APP_ID>/uploads, donde el valor de <APP_ID> es el identificador de la aplicación de Meta, con los parámetros obligatorios siguientes:

  • file_name: nombre del archivo.
  • file_length: tamaño del archivo en bytes.
  • file_type: tipo MIME del archivo. Los valores válidos son application/pdf, image/jpeg, image/jpg, image/png y video/mp4.

Sintaxis de la solicitud

Se ha aplicado formato para mejorar la legibilidad.

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 correctamente, la aplicación recibirá una respuesta JSON con el identificador de la sesión de subida.

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

Paso 2: Comenzar la subida

Para comenzar la subida, envía una solicitud POST al extremo /upload:<UPLOAD_SESSION_ID> con el valor de file_offset siguiente establecido 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 identificador de acceso en el encabezado; de lo contrario, la llamada no se ejecutará correctamente.

Si la operación se realiza correctamente, la aplicación recibirá el identificador del archivo que utilizarás en las llamadas a la API para publicar el archivo en el extremo.

{
  "h": "<UPLOADED_FILE_HANDLE>"
}

Ejemplo de respuesta

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

Reanudar una subida interrumpida

Si has iniciado una sesión de subida, pero está tardando más de lo esperado o se ha interrumpido, envía una solicitud GET al extremo /upload:<UPLOAD_SESSION_ID> del Paso 1.

Sintaxis de la solicitud

Se ha aplicado formato para mejorar la legibilidad.

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 correctamente, la aplicación recibirá una respuesta JSON con un valor de file_offset que puedes usar para reanudar el proceso de subida desde el momento de la interrupción.

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

Utiliza este valor de file_offset para enviar otra solicitud POST de la misma manera que en el Paso 2. De esta forma, se reanudará el proceso de subida desde el momento de la interrupción.

Siguientes pasos