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.
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:
pdf
jpeg
jpg
png
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
.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>" }
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
.
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>" }
{ "h": "2:c2FtcGxl..." }
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.
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.