Caricamento di un file

L'API Resumable Upload consente di caricare file di grandi dimensioni sul social graph di Meta e di riprendere le sessioni di caricamento interrotte senza dover ricominciare. Una volta caricato il file, potrai pubblicarlo.

I riferimenti per gli endpoint che supportano gli handle dei file caricati indicheranno se tali endpoint supportano gli handle restituiti dall'API Resumable Upload.

Prima di iniziare

Questa guida presuppone che tu abbia letto la Panoramica dell'API Graph e le guide allo Sviluppo di Meta e abbia eseguito le azioni necessarie per sviluppare con Meta.

Ecco cosa ti servirà:

  • Un ID app di Meta
  • Un file in uno dei seguenti formati:
    • pdf
    • jpeg
    • jpg
    • png
  • Un token d'accesso dell'utente

Passaggio 1: avvio di una sessione di caricamento

Per avviare una sessione di caricamento, invia una richiesta POST all'endpoint /<APP_ID>/uploads in cui <APP_ID> è l'ID Meta della tua app, con i seguenti parametri richiesti:

  • file_name: il nome del tuo file.
  • file_length: le dimensioni del file, in byte.
  • file-type: il tipo MIME del file. I valori validi sono: application/pdf, image/jpeg, image/jpg, image/png e video/mp4

Sintassi della richiesta

Formattato per una maggiore leggibilità.

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

In caso di azione eseguita correttamente, l'app riceve una risposta JSON con l'ID della sessione di caricamento.

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

Passaggio 2: avvio del caricamento

Avvia il caricamento del file inviando una richiesta POST all'endpoint /upload:<UPLOAD_SESSION_ID> con il seguente file_offset impostato su 0.

Sintassi della richiesta

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>

Devi includere il token d'accesso nell'intestazione o la chiamata non andrà a buon fine.

In caso di azione eseguita correttamente, l'app riceve l'handle del file da utilizzare nelle chiamate API per pubblicare il file sul tuo endpoint.

{
  "h": "<UPLOADED_FILE_HANDLE>"
}

Esempio di risposta

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

Ripresa di un caricamento interrotto

Se hai avviato una sessione di caricamento, ma questa sta richiedendo più tempo del previsto o è stata interrotta, invia una richiesta GET all'endpoint /upload:<UPLOAD_SESSION_ID> indicato al Passaggio 1.

Sintassi della richiesta

Formattato per una maggiore leggibilità.

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

In caso di azione eseguita correttamente, l'app riceve una risposta JSON con il valore file_offset che puoi usare per riprendere la procedura di caricamento dal punto in cui è stata interrotta.

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

Usa questo valore file_offset per inviare un'altra richiesta POST seguendo la stessa procedura descritta al Passaggio 2. In questo modo, la procedura di caricamento riparte dal punto in cui è stata interrotta.

Passaggi successivi