Questo documento ti mostra come usare l'API Facebook Stories per pubblicare storie sulle Pagine Facebook.
Per pubblicare una storia, devi procedere in questo modo:
Questa guida presuppone che tu abbia letto la Panoramica sull'API Pages e abbia implementato i componenti necessari, completando con successo i passaggi descritti dalla guida Primi passi.
Dovrai implementare Facebook Login o Facebook Login for Business per chiedere agli utenti della tua app le autorizzazioni necessarie per accedere alle loro Pagine Facebook e ricevere token d'accesso della Pagina.
Gli utenti della tua app dovranno essere in grado di eseguire l'attività CREATE_CONTENT
sulla Pagina rappresentata nel token d'accesso della Pagina e concedere alla tua app le seguenti autorizzazioni:
pages_manage_posts
pages_read_engagement
pages_show_list
Se usi un utente di sistema aziendale nelle tue richieste API, avrai bisogno anche dell'autorizzazione business_management
.
Devi fornire una foto o un video che corrisponda alle seguenti specifiche.
Proprietà | Specifica |
---|---|
Tipo di file | .jpeg, .bmp, .png, .gif, .tiff |
Dimensione del file | I file non possono superare i 4 MB. Per i file .png, consigliamo di non superare 1 MB o l'immagine potrebbe apparire pixellata. |
Proprietà | Specifica | ||
---|---|---|---|
Tipo di file | .mp4 (consigliato) | ||
Proporzioni | 9 x 16 | ||
Risoluzione | 1080 x 1920 pixel (consigliato). Minimo 540 x 960 pixel | ||
Frequenza dei fotogrammi | 24-60 fotogrammi al secondo | ||
Durata | 3-90 secondi. Un reel pubblicato come storia su una Pagina Facebook non può superare i 60 secondi. | ||
Impostazioni video |
| ||
Impostazioni audio |
|
GET
per vedere una lista delle tue storie, devi attivare l'archivio delle storie di Facebook
Quando esegui il test di una chiamata API puoi includere il parametro access_token
impostato sul tuo token d'accesso. Quando invece effettui chiamate protette dalla tua app, usa la classe del token d'accesso.
Gli esempi di codice contenuti in questo documento sono formattati per una maggiore leggibilità. Sostituisci i valori corsivi in grassetto, come page_id, con i tuoi valori.
Per pubblicare una storia con video su una Pagina Facebook, dovrai iniziare una sessione di caricamento video con i server di Meta, caricare il video sui server di Meta e, a quel punto, potrai pubblicare la storia con video.
Per iniziare un sessione di caricamento, invia una richiesta POST
all'endpoint /page_id/video_stories
dove page_id
è l'ID per la tua Pagina Facebook, con il parametro upload_phase
impostato su start
.
curl -X POST "https://graph.facebook.com/v21.0
/page_id/video_stories" \
-d '{
"upload_phase":"start",
}'
In caso di azione eseguita correttamente, la tua app riceve una risposta JSON con l'ID per il video e l'URL Facebook dove caricare il video.
{
"video_id": "video_id",
"upload_url": "https://rupload.facebook.com/video-upload/v21.0
/video_id",
}
Ora che hai iniziato una sessione di caricamento e ricevuto l'URL di caricamento, puoi caricare il video. Puoi caricare uno di questi due file:
Per caricare un file ospitato, invia una richiesta POST
all'endpoint upload_url
che hai ricevuto durante il passaggio di inizializzazione con i seguenti parametri:
file_url
impostato sull'URL per il tuo file video
curl -X POST "https://rupload.facebook.com/video-upload/v21.0
/video_id" \
-H "file_url: https://some.cdn.url/video.mp4"
Per caricare un file locale, invia una richiesta POST
all'endpoint upload_url
che hai ricevuto durante il passaggio di inizializzazione con i seguenti parametri:
offset
impostato su 0
file_size
impostato sulle dimensioni totale in byte del video da caricare
curl -X POST "https://rupload.facebook.com/video-upload/v21.0
/video_id" \
-H "offset: 0" \
-H "file_size: file_size_in_bytes" \
--data-binary "@/path/to/file/my_video_file.mp4"
In caso di caricamento eseguito correttamente, l'app riceve la seguente risposta JSON con success
impostato su true
.
{ "success": true }
Se il caricamento del video viene interrotto, puoi riavviare il caricamento o riprenderlo.
POST
e imposta offset
su 0
. POST
con offset
impostato sul valore bytes_transfered
ottenuto da un controllo dello stato.Per controllare lo stato del tuo video, durante il caricamento o la pubblicazione, invia una richiesta GET
all'endpoint /video_id
con il seguente parametro:
fields
impostato su status
curl -X GET "https://graph.facebook.com/v21.0
/video_id" \
-d "fields=status"
In caso di azione eseguita correttamente, l'app riceve una risposta JSON contenente:
status
che a sua volta contiene:
video_status
con un valore di ready
, processing
, expired
o error
uploading_phase
con la seguente coppia di chiave-valore:
status
impostato su in_progress
, not_started
, complete
o error
bytes_transfered
impostato sui byte che sono stati caricati; può essere utilizzato come valore per offset
se il caricamento viene interrottoprocessing_phase
con la seguente coppia di chiave-valore:
status
impostato su in_progress
, not_started
, complete
o error
processing_phase
con la seguente coppia di chiave-valore:
status
impostato su in_progress
, not_started
, complete
o error
publish_status
impostato su published
o not_published
publish_time
impostato su un'indicazione temporale UNIX dell'ora effettiva o pubblicata
La seguente risposta mostra un file caricato correttamente.
{ "status": { "video_status": "processing", "uploading_phase": { "status": "in_progress", "bytes_transfered": 50002 }, "processing_phase": { "status": "not_started" } "publishing_phase": { "status": "not_started", "publish_status": "published", "publish_time": 234523452 } } } |
La seguente risposta mostra che si è verificato un errore nella fase di elaborazione.
{ "status": { "video_status": "processing", "uploading_phase": { "status": "complete" }, "processing_phase": { "status": "not_started", "error": { "message": "Resolution too low. Video must have a minimum resolution of 540p." } } "publishing_phase": { "status": "not_started" } } } |
Per pubblicare una storia con video sulla tua Pagina, dovrai inviare un POST
all'endpoint /page_id
/video_stories
con i seguenti parametri:
video_id
impostato come l'ID per il video caricatoupload_phase
impostato su finish
curl -X POST "https://graph.facebook.com/v21.0
/page_id/video_stories" \
-d '{
"video_id": "video_id",
"upload_phase": "finish"
}'
In caso di azione eseguita correttamente, l'app riceve una risposta JSON contenente la seguente coppia chiave-valore:
success
impostato su true
post_id
impostato sull'ID per la pubblicazione della tua storia{ "success": true, "post_id": 1234 }
Consulta il riferimento ai post della Pagina per sapere come caricare una foto sui server Meta usando l'endpoint /page_id/photos
. Assicurati di includere il parametro published
e di impostarlo su false
.
Per pubblicare una storia con foto sulla tua Pagina, dovrai inviare un POST
all'endpoint /page_id
/photo_stories
con i seguenti parametri:
photo_id
impostato come l'ID per la foto caricata
curl -X POST "https://graph.facebook.com/v21.0
/page_id/photo_stories" \
-d '{
"photo_id": "photo_id"
}'
In caso di azione eseguita correttamente, l'app riceve una risposta JSON contenente la seguente coppia chiave-valore:
success
impostato su true
post_id
impostato sull'ID per la pubblicazione della tua storia{ "success": true, "post_id": 1234 }
Per ottenere una lista di tutte le storie per una Pagina e i dati relativi a ogni storia, invia una richiesta GET
all'endpoint /
page_id
/stories
dove page_id
è l'ID per la Pagina che desideri visualizzare.
curl -i -X GET "https://graph.facebook.com/v21.0
/page_id/stories"
In caso di azione eseguita correttamente, la tua app riceve una risposta JSON con un array di oggetti in cui ogni oggetto contiene informazioni su una storia pubblicata sulla Pagina. Ogni oggetto contiene le seguenti coppie di chiave-valore:
post_id
impostato sull'ID per la pubblicazione della storiastatus
impostato su PUBLISHED
, ARCHIVED
creation_time
impostato sull'indicazione temporale UNIX relativa alla pubblicazione della storiamedia_type
impostato su video
o photo
media_id
impostato sull'ID per il video o la foto contenuti nella storia pubblicataurl
impostato sull'URL di Facebook per la pubblicazione della storia, come https://facebook.com/stories/8283482737484972
{ "data": [ { "post_id": "post_id", "status": "PUBLISHED", "creation_time": "123456", "media_type": "video", "media_id": "video_id", "url": "https://facebook.com/stories…" }, { "post_id": "post_id", "status": "PUBLISHED", "creation_time": "123456", "media_type": "photo", "media_id": "photo_id", "url": "https://facebook.com/stories…" }, { "post_id": "post_id", "status": "ARCHIVED", "creation_time": "123456", "media_type": "photo", "media_id": "photo_id", "url": "https://facebook.com/stories…" }, ... ], }
Puoi filtrare le storie per stato (pubblicato o archiviato) e data (usando i parametri since
e until
).
Scopri di più sui vari endpoint e concetti menzionati in questa guida.