Incorpora un post di Instagram

Interroga l'endpoint oEmbed di Instagram per ottenere il codice HTML e i metadati di base di un post di Instagram in modo da incorporarlo in un altro sito web o in un'altra app. Funziona per i post con foto, video, reel e del feed.

Visita il Centro assistenza di Instagram per scoprire come ottenere il codice di incorporamento da un post o un profilo pubblico di Instagram.

Utilizzi comuni

  • Incorporare un post in un blog
  • Incorporare un post in un sito web
  • Visualizzare un post in un sistema di gestione dei contenuti
  • Visualizzare un post in un'app di messaggistica

Requisiti

Questa guida presuppone che tu sia uno sviluppatore Meta registrato e che abbia creato un'app Meta.

Avrai bisogno dei seguenti elementi:

Livelli di accesso

Token d'accesso

URL di base

È possibile accedere a tutti gli endpoint tramite l'host graph.facebook.com.

Endpoint

Funzioni

Limitazioni

  • L'endpoint oEmbed di Instagram deve essere utilizzato esclusivamente per incorporare i contenuti Instagram in siti web e app. Non è progettato per alcun altro scopo. È severamente vietato usare i metadati e i contenuti di pagine, post o video (o i relativi derivati) dall'endpoint per finalità diverse dal fornire una visualizzazione front-end di tale pagina, post o video. Questo divieto comprende l'utilizzo, la manipolazione, l'estrazione o la persistenza di metadati e contenuti, tra cui la derivazione di informazioni su pagine, post e video dai metadati per finalità di analisi.
  • I post su account Instagram privati, inattivi e soggetti a limitazioni legate all'età non sono supportati.
  • Non funziona per gli account con incorporamenti disabilitati.
  • Le storie non sono supportate.
  • Shadow DOM non è supportato.

Rate limiting

I rate limiting dipendono dal tipo di token d'accesso incluso dall'app in ogni richiesta.

Rate limiting dei token dell'app

Le app che si basano sui token d'accesso dell'app possono generare fino a 5 milioni di richieste in 24 ore.

Rate limiting dei token client

I rate limiting dei token client sono decisamente inferiori rispetto a quelli dei token dell'app. Non indichiamo un limite effettivo perché varia a seconda dell'attività dell'app. Ad ogni modo, puoi tranquillamente presumere che la tua app non raggiungerà il suo limite a meno che non mostri comportamenti tipici di un bot, come l'invio in batch di migliaia di richieste per agente o utente dell'app.

Ottenere un HTML di incorporamento

Puoi ottenere un HTML di incorporamento in modo programmatico o nell'app Instagram.

Per ottenere il codice HTML in modo da incorporare un post di Instagram in modo programmatico, invia una richiesta a:

GET /instagram_oembed?url=<URL_OF_THE_POST>&access_token=<ACCESS_TOKEN>

Sostituisci <URL_OF_THE_POST> con l'URL del post di Instagram che desideri interrogare e <ACCESS_TOKEN> con il token d'accesso dell'app o del client oppure passalo a noi in un'intestazione HTTP Authorization.

Authorization: Bearer <ACCESS_TOKEN>

Se utilizzi un token d'accesso client, ricorda che devi combinarlo con l'ID app di Meta utilizzando una barra verticale, altrimenti la richiesta non andrà a buon fine.

Se l'operazione va a buon fine, l'API risponde con un oggetto JSON contenente il codice HTML per incorporare il post e i dati aggiuntivi. Il codice HTML di incorporamento verrà assegnato alla proprietà html.

Consulta il riferimento oEmbed di Instagram per una lista di parametri della stringa di query che puoi includere per perfezionare la richiesta. Puoi anche includere il parametro della stringa di query fields per specificare i campi che desideri ottenere. Qualora venisse omesso, verranno inclusi nella risposta tutti i campi predefiniti.

Esempio di richieste

curl -X GET \
  "https://graph.facebook.com/v21.0/instagram_oembed?url=https://www.instagram.com/p/fA9uwTtkSN/&access_token=IGQVJ..."

curl -i -X GET \
     --header "Authorization: Bearer 96481..." \
     "https://graph.facebook.com/v21.0/instagram_oembed?url=https%3A%2F%2Fwww.instagram.com%2Fp%2FfA9uwTtkSN"

Esempio di risposta

Alcuni valori sono stati troncati con i puntini di sospensione (...) per una maggiore leggibilità.

{
  "version": "1.0",
  "author_name": "diegoquinteiro",
  "provider_name": "Instagram",
  "provider_url": "https://www.instagram.com/",
  "type": "rich",
  "width": 658,
  "html": "<blockquote class=\"instagram-media\" data-instgrm-ca...",
  "thumbnail_width": 640,
  "thumbnail_height": 640
}

Formati URL

Il parametro della stringa della query url accetta i seguenti formati URL:

https://www.instagram.com/p/{media-shortcode}/
https://www.instagram.com/tv/{media-shortcode}/https://www.instagram.com/{username}/guide/{slug}/{guide_id}

Embed JS

Il codice HTML di incorporamento contiene un riferimento alla libreria JavaScript embed.js di Instagram. Una volta caricata, la libreria scansiona la Pagina in cerca dell'HTML del post e genera un post interamente renderizzato. Se desideri caricare la libreria separatamente, includi il parametro della stringa di query omitscript=true nella tua richiesta. Per inizializzare manualmente l'HTML di incorporamento, chiama la funzione instgrm.Embeds.process() dopo il caricamento della libreria.

Dimensioni del post

Il post incorporato è responsivo e si adatterà alle dimensioni del suo contenitore. Questo significa che l'altezza varierà a seconda della larghezza del contenitore e della lunghezza della didascalia. Puoi impostare la larghezza massima includendo il parametro della stringa di query maxwidth nella tua richiesta.

Ottenere le miniature

Quando possibile, ti consigliamo di visualizzare interamente il codice HTML di incorporamento del post. Se non riesci a farlo, puoi ottenere un URL della miniatura del post da visualizzare al posto del codice. Tuttavia, se decidi di procedere in questo modo, devi indicare un'attribuzione chiara accanto all'immagine, inclusa quella per l'autore originale e per Instagram, oltre a un link al post di Instagram che stai interrogando.

Per ottenere l'URL della miniatura di un post e le informazioni sulle attribuzioni, invia una richiesta a:

GET /instagram_oembed
  ?url=<URL_OF_THE_POST>
  &maxwidth=<MAX_WIDTH>
  &fields=thumbnail_url,author_name,provider_name,provider_url
  &access_token=<ACCESS_TOKEN>

Sostituisci <URL_OF_THE_POST> con l'URL del post di Instagram che desideri interrogare, <MAX_WIDTH> con le dimensioni massime della miniatura che desideri visualizzare e <ACCESS_TOKEN> con il tuo token d'accesso dell'app o del client.

Esempio di richiesta

curl -i -X GET \
  "https://graph.facebook.com/v21.0/instagram_oembed?url=https%3A%2F%2Fwww.instagram.com%2Fp%2FfA9uwTtkSN&maxwidth=320&fields=thumbnail_url%2Cauthor_name%2Cprovider_name%2Cprovider_url&access_token=96481..."

Esempio di risposta

Alcuni valori sono stati troncati con i puntini di sospensione (...) per una maggiore leggibilità.

{
  "thumbnail_url": "https://scontent.cdninstagram.com/v/t51.288...",
  "author_name": "diegoquinteiro",
  "provider_name": "Instagram",
  "provider_url": "https://www.instagram.com/"
}

Invio per l'Analisi dell'app

Quando invii la tua app per l'analisi, nel campo del modulo Comunicaci perché stai richiedendo Oembed Read > Fornisci un URL in cui possiamo testare Oembed Read, usa l'endpoint Instagram oEmbed per ottenere l'HTML di incorporamento per qualsiasi post pubblico sulla nostra Pagina Facebook o Pagina Instagram ufficiale. Quindi, aggiungi l'HTML di incorporamento restituito nel punto in cui mostrerai il contenuto oEmbed e inserisci l'URL della pagina nel campo del modulo.

Dopo aver ottenuto l'approvazione per la funzione oEmbed Read, potrai incorporare pagine, post o video utilizzando i rispettivi URL.