L'API Video consente di pubblicare video su Pagine e gruppi. La pubblicazione su utenti non è supportata.
Puoi anche pubblicare reel su Pagine. Per maggiori informazioni consulta API Reels Publishing.
La procedura di pubblicazione dei video prevede la scelta di un protocollo di caricamento e l'invio di una richiesta POST
al segmento /videos
della Pagina o del gruppo di destinazione. L'API supporta sia protocolli di caricamento ripristinabili sia non ripristinabili. Ti consigliamo di utilizzare il protocollo di caricamento ripristinabile poiché è più versatile e può gestire in modo discreto le interruzioni di connessione.
Gli esempi in questo documento utilizzano un nodo Page ma si applicano allo stesso modo ai nodi Group.
Tutte le azioni di pubblicazione richiedono un token d'accesso e autorizzazioni appropriati in base al nodo di destinazione. Mentre esegui il test puoi generare facilmente token e concedere autorizzazioni alla tua app utilizzando il Tool di esplorazione per la API Graph. Fai riferimento alla nostra guida Primi passi per ulteriori informazioni su come eseguire questa operazione. Quando l'app è pronta per la produzione, probabilmente dovrai implementare Facebook Login per ottenere token e autorizzazioni dagli utenti della tua app.
L'utente dell'app deve essere un amministratore della Pagina di destinazione. Avrai bisogno del token d'accesso della Pagina dell'utente dell'app, che dovrà concedere alla tua app le autorizzazioni pages_show_list
, pages_read_engagement
e pages_manage_posts
.
L'utente dell'app deve essere un amministratore del gruppo di destinazione. Avrai bisogno del token d'accesso dell'utente dell'app, che dovrà concedere alla tua app l'autorizzazione publish_to_groups
.
Il protocollo di caricamento ripristinabile è il protocollo di pubblicazione preferito poiché consente di suddividere video di grandi dimensioni in parti più piccole per evitare timeout. Tale funzione è particolarmente utile per video di grandi dimensioni in cui è più probabile che si verifichi un errore di connessione. Se si verifica un errore di connessione durante il caricamento di un video di grandi dimensioni, normalmente è necessario ricaricare l'intero video. Ma utilizzando il protocollo di caricamento ripristinabile sarà necessario ricaricare solo la parte interessata, in quanto quelle che sono già state caricate non dovranno essere ricaricate.
Puoi pubblicare un video su una Pagina o un gruppo. La pubblicazione prevede i seguenti passaggi:
Al termine della sessione di caricamento, procederemo a riassemblare il video, codificarlo e pubblicarlo.
I video sono limitati a 10 GB e 4 ore.
Per inizializzare una sessione di caricamento di video, invia una richiesta POST
all'endpoint Page Videos:
POST /v19.0
/{page-id}/videos
?upload_phase=start
&access_token={access-token}
&file_size={file-size}
Includi i seguenti parametri:
Nome del parametro | Valore |
---|---|
|
|
| Il tuo token d'accesso della Pagina se si pubblica su una Pagina oppure il tuo token d'accesso dell'utente se si pubblica su un gruppo. |
| Le dimensioni totali del file video in byte. |
curl -X POST \
"https://graph-video.facebook.com/v19.0
/1755847768034402/videos" \
-F "upload_phase=start" \
-F "access_token=EAADI..." \
-F "file_size=22420886"
{ "video_id":"2918040888250909", //Capture this value (optional) "start_offset":"0", //Capture this value "end_offset":"1048576", "upload_session_id":"2918040901584241" //Capture this value }
Acquisisci i valori start_offset
e upload_session_id
restituiti dall'API. Li utilizzerai nel passaggio successivo per caricare la prima parte di video. Ti consigliamo di acquisire anche il valore video_id
. Non ti servirà per la pubblicazione, ma sarà l'ID dell'eventuale video pubblicato.
Carica ciascuna parte del tuo video nell'ordine di assemblaggio inviando richieste POST
consecutive all'endpoint Page Videos:
POST /v19.0
/{page-id}/videos
?upload_phase=transfer
&access_token={access-token}
&upload_session_id={upload-session-id}
&start_offset={start-offset}
&video_file_chunk={video-file-chunk}
Includi i seguenti dati come multipart/form-data
nel corpo della richiesta:
Nome dati modulo | Valore |
---|---|
|
|
| Il tuo token d'accesso della Pagina se si pubblica su una Pagina oppure il tuo token d'accesso dell'utente se si pubblica su un gruppo. |
| Il tuo ID della sessione di caricamento. |
| Il valore |
| Il nome della parte di video da caricare. |
Ogni volta che carichi correttamente una parte, viene restituito un nuovo valore start_offset
. Ripeti questa richiesta utilizzando il valore start_offset
appena restituito e il nome della successiva parte di video da caricare (assegnato a video_file_chunk
), quindi procedi gradualmente fino a caricare tutte le parti di video rimanenti.
curl -X POST \
"https://graph-video.facebook.com/v19.0
/1755847768034402/videos" \
-F "upload_phase=transfer" \
-F "upload_session_id=2918040901584241" \
-F "access_token=EAADI..." \
-F "start_offset=0" \
-F "video_file_chunk=@/Users/...xaa"
{ "start_offset":"10485760", //Value for second chunk "end_offset":"15728640" }
curl -X POST \
"https://graph-video.facebook.com/v19.0
/1755847768034402/videos" \
-F "upload_phase=transfer" \
-F "upload_session_id=2918040901584241" \
-F "access_token=EAADI..." \
-F "start_offset=10485760" \
-F "video_file_chunk=@/Users/...xab"
{ "start_offset":"20971520", //Value for third chunk "end_offset":"22420886" }
Dopo aver caricato l'ultima parte, l'API dovrebbe rispondere con i valori start_offset
e end_offset
corrispondenti, a indicare che è possibile terminare la sessione di caricamento.
{ "start_offset":"22420886", //When values match you can "end_offset":"22420886" //end the upload session }
Al termine della sessione di caricamento, procederemo a riassemblare il video completo, codificarlo e pubblicarlo sulla Pagina. Per terminare la sessione di caricamento, invia una richiesta POST
finale all'endpoint Page Videos:
POST /v19.0
/{page-id}/videos
?upload_phase=finish
&access_token={access-token}
&upload_session_id={upload-session-id}
Includi i seguenti parametri:
Nome del parametro | Valore |
---|---|
|
|
| Il tuo token d'accesso della Pagina se si pubblica su una Pagina oppure il tuo token d'accesso dell'utente se si pubblica su un gruppo. |
| Il tuo ID della sessione di caricamento. |
Puoi anche includere qualsiasi parametro aggiuntivo supportato dall'endpoint Page Videos, come title
, description
e thumb
.
curl -X POST \
"https://graph-video.facebook.com/v19.0
/1755847768034402/videos" \
-F "upload_phase=finish" \
-F "access_token=EAADI..." \
-F "upload_session_id=2918040901584241"
{ "success":true }
Quando ricevi questa risposta, significa che abbiamo iniziato ad assemblare e codificare il video completo. Dovresti essere in grado di vedere il video pubblicato entro pochi minuti.
Ti consigliamo di caricare i file utilizzando il protocollo di caricamento ripristinabile poiché gestisce le interruzioni di connessione in modo più efficiente e supporta file di dimensioni maggiori. Se invece preferisci caricare i file utilizzando il protocollo di caricamento non ripristinabile, puoi farlo inviando una richiesta POST
al segmento Page Videos e includendo il parametro source
(per file video locali) o il parametro file_url
(per file ospitati su un server pubblico) nel corpo della richiesta come multipart/form-data
. Puoi anche includere qualsiasi parametro aggiuntivo supportato dall'endpoint Page Videos, come title
, description
e thumb
.
I video sono limitati a 1 GB e 20 minuti. Se il tuo file video è più grande, suddividilo in parti e pubblicalo utilizzando il protocollo di caricamento ripristinabile.
curl -X POST \
"https://graph-video.facebook.com/v19.0
/1755847768034402/videos" \
-F "access_token=EAADd..." \
-F "source=@/Users/...incredible.mov"
curl -X POST \
"https://graph-video.facebook.com/v19.0
/1755847768034402/videos" \
-F "access_token=EAADd..." \
-F "file_url=https://socialsizz.../incredible.mov"
In caso di azione eseguita correttamente, l'API risponderà con l'ID del video pubblicato.
{ "id":"287788272232962" //ID of the published Video }
Generiamo automaticamente immagini di anteprima utilizzando fermi immagine di video pubblicati. Le miniature generate possono essere migliorate per una luminosità, un colore e un contrasto di qualità superiore. Puoi fornire la tua immagine di anteprima includendo il campo thumb
con il protocollo ripristinabile o non ripristinabile. Se utilizzi il protocollo ripristinabile, includi il campo thumb
durante il passaggio 3: conclusione della sessione di caricamento. Le immagini di anteprima fornite non verranno alterate.
Formato: BMP, GIF, JPEG, PNG, TIFF
Dimensioni del file: al massimo 10 MB.
Non esistono requisiti per le dimensioni dell'immagine, ma deve avere le stesse proporzioni del video.
curl -X POST \
"https://graph-video.facebook.com/v19.0
/1755847768034402/videos" \
-F "upload_phase=finish" \
-F "access_token=EAADI..." \
-F "upload_session_id=2918040901584241"
-F "thumb=@/Users/...thumbnail_image.png"
{ "success":true }
curl -X POST \
"https://graph-video.facebook.com/v19.0
/1755847768034402/videos" \
-F "access_token=EAADd..." \
-F "source=@/Users/...incredible.mov"
-F "thumb=@/Users/...thumbnail_image.png"
{ "id":"287788272232962" }