Configura un token app per le onebox di Instagram

:warning: Aggiornamenti importanti da quando questa guida è stata scritta originariamente:

  1. La Revisione dell’app è ora obbligatoria. Da settembre 2021, Meta richiede che la tua app superi la Revisione dell’app e sia approvata per il permesso oEmbed Read (ora chiamato Meta oEmbed Read per le app create dopo l’8 aprile 2025). Senza questo, le chiamate API oEmbed falliranno. Consulta le indicazioni per l’invio della Revisione dell’app di Meta per suggerimenti su come ottenere l’approvazione.

  2. Le onebox di Instagram potrebbero non essere visualizzate correttamente. A partire dal 3 novembre 2025, Meta ha rimosso i campi thumbnail_url, thumbnail_width, thumbnail_height e author_name dalle risposte oEmbed di Instagram. Il codice onebox di Instagram di Discourse attualmente dipende da questi campi (lib/onebox/engine/instagram_onebox.rb), il che potrebbe comportare incorporamenti non funzionanti o vuoti.

  3. Sono supportati solo gli URL di post e IGTV. Attualmente, Discourse esegue l’uno-boxing solo per gli URL /p/ (post) e /tv/ (IGTV) di Instagram. Gli URL Reels (/reel/) non sono supportati.

  4. L’interfaccia utente della Console per sviluppatori di Facebook è cambiata in modo significativo da quando gli screenshot seguenti sono stati acquisiti a dicembre 2020. I passaggi generali rimangono simili, ma le schermate e le opzioni esatte potrebbero apparire diverse.


Se hai già un’app Facebook associata al tuo sito Discourse, scorri fino a Aggiungere oEmbed alla tua app Facebook.

Se non hai un account Sviluppatore Facebook e un’app Facebook:

Vai su https://developers.facebook.com/. Ti verrà richiesto di accedere al tuo account Facebook se non hai effettuato l’accesso. Potrebbe esserti chiesto di “convertire” il tuo account Facebook in un account sviluppatore se non l’hai fatto in precedenza. Potrebbe esserti chiesto di verificare il tuo account con Facebook aggiungendo un numero di telefono o completando altri passaggi. Dovrai semplicemente seguire le istruzioni e fare ciò che Facebook ti richiede.

Una volta che hai un account Sviluppatore Facebook, fai clic su “Le mie app” dalla schermata iniziale degli sviluppatori di Facebook:

…e “Crea app”:

Seleziona un tipo di app di “Altro” e “Continua”:

Inserisci un “Nome visualizzato dell’app” e un’“Email di contatto dell’app”. Una volta letti i loro Termini e politiche, puoi fare clic su “Crea app”:

Se sei un robot: non c’è nulla da vedere qui. Bip bop boop. :robot:

Se non sei un robot: fai clic su “Non sono un robot”, segui le istruzioni e fai clic su “Invia”.

Congratulazioni! Hai un’app Facebook!

Aggiungere oEmbed alla tua app Facebook:

Scorri fino alla fine dell’elenco dei Prodotti, trova “oEmbed” e fai clic su “Configura”:

Se sei d’accordo con il modo in cui utilizzerai il prodotto oEmbed, seleziona la casella di controllo e poi fai clic su “Conferma”:

Il prodotto oEmbed è stato aggiunto. Fai clic su “Impostazioni”:

“Nome visualizzato” ed “Email di contatto” dovrebbero essere già compilati. Dovrai inserire gli URL per la tua “Informativa sulla privacy” e i “Termini di servizio”. Seleziona una “Categoria” dall’elenco delle opzioni disponibili. Fai clic su “Salva modifiche” quando sei soddisfatto di tutto:

Fai clic sull’interruttore in alto nella schermata per passare dalla modalità “In sviluppo” alla modalità “Live”:

Fai clic su “Cambia modalità”:

Invia la tua app per la Revisione dell’app (obbligatoria dal 2021):

Prima che la tua app possa accedere all’API oEmbed in produzione, devi inviarla per la Revisione dell’app e richiedere il permesso oEmbed Read (o Meta oEmbed Read per le app create dopo l’8 aprile 2025).

  1. Nella dashboard della tua app, vai a Revisione dell’appPermessi e Funzionalità.
  2. Trova oEmbed Read (o Meta oEmbed Read) e fai clic su Richiedi.
  3. Potrebbe essere necessario prima effettuare una chiamata API di prova riuscita prima che il pulsante di richiesta diventi attivo. Potrebbero essere necessarie fino a 24 ore dopo la prima chiamata API.
  4. Al momento dell’invio, fornisci un URL sul tuo sito Discourse che contiene un’incorporazione di Instagram e spiega che il tuo sito utilizza il software del forum Discourse per incorporare i post di Instagram utilizzando l’API oEmbed.

Consulta la documentazione oEmbed di Meta per indicazioni dettagliate sull’invio.

Genera il tuo Token di accesso dell’app:

Fatto tutto questo, possiamo effettivamente generare un Token dell’app seguendo le istruzioni di Facebook su Token di accesso dell’app. Avrai bisogno del valore del campo “ID app” e del valore del campo “Segreto app”. Per ottenere il Segreto app, fai clic su “Mostra”. Potrebbe esserti chiesto di autenticarti di nuovo o altro, ma dovresti ottenere un lungo valore esadecimale che puoi copiare:

Come da documentazione di Facebook, devi inviare questi valori a Facebook per generare un token. Hai familiarità con l’uso di curl? Ottimo! Suggeriscono quanto segue (sostituendo {your-app-id} e {your-app-secret} con i valori che hai copiato dalla schermata sopra).

curl -X GET "https://graph.facebook.com/oauth/access_token?client_id={your-app-id}&client_secret={your-app-secret}&grant_type=client_credentials"

In alternativa, copiare solo l’URL (dopo aver sostituito quei due valori) nel browser dovrebbe funzionare:

https://graph.facebook.com/oauth/access_token?client_id={your-app-id}&client_secret={your-app-secret}&grant_type=client_credentials

Facebook risponderà con un piccolo blocco di JSON, che dovrebbe assomigliare a questo esempio:

{"access_token":"1234567890654321|c3bd55c09fc5e561552ad7a8717","token_type":"bearer"}

Copia il valore del tuo access_token, escluse le virgolette (cioè, nel mio esempio sarebbe 1234567890654321|c3bd55c09fc5e561552ad7a8717), e vai alle Impostazioni del tuo sito Discourse. Trova l’impostazione del sito chiamata facebook_app_access_token nelle impostazioni Onebox. Incolla il valore ‘access_token’ in questo campo:

Fai clic sulla :white_check_mark:…e hai finito!

Incollare un URL come https://www.instagram.com/p/CIRhYzFM7Lu/ in un post sul tuo sito dovrebbe dare come risultato una bella onebox, proprio come questa:

https://www.instagram.com/p/CIRhYzFM7Lu/

17 Mi Piace

Nuova funzionalità di lettura oEmbed e nuovi requisiti di revisione delle app

Oggi, 8 giugno 2021, abbiamo annunciato la v11.0 delle API Graph e delle API di Marketing. Con questo aggiornamento, sono stati introdotti nuovi requisiti per accedere alle API oEmbed . Alcune delle tue app accedono attualmente alle API oEmbed e potrebbero essere interessate da queste modifiche.

Per continuare ad accedere alle API oEmbed, dovrai inviare le tue app per la revisione entro il 6 settembre 2021. Se desideri richiedere un nuovo accesso alle API oEmbed, dovrai anch’esso inviare la tua/e app per la revisione.

Per ulteriori informazioni, consulta i requisiti aggiornati. Se le tue app non saranno state revisionate per la funzionalità API oEmbed entro il 6 settembre 2021, perderanno l’accesso a questa funzionalità. Per evitare interruzioni nell’accesso alle API oEmbed delle tue app, ti invitiamo a inviare la richiesta di revisione dell’app il prima possibile.

Nuove regole dai nostri signori di Facebook: ho appena inviato entrambe le mie app per la revisione. Ho trovato un post pubblico con un embed di Instagram e ho collegato direttamente per mostrare come funziona l’integrazione. Spero che questo sia sufficiente.

8 Mi Piace


womp womp, la revisione è fallita.

ecco cosa ho inviato

Dettagli della tua sottomissione

Un revisore di Facebook è in grado di accedere o effettuare il login alla tua app per verificare che tu stia utilizzando le autorizzazioni o le funzionalità in conformità con la Politica della Piattaforma Facebook?

Impostazioni della piattaforma

Desktop

URL del sito: https://fixed.org.au/

Nessun account necessario

  1. Visita The 'what you've done to your bike today' thread - #10218 by jaseyjase - Post your ride - FOA
  2. Il post di Instagram è incorporato nella pagina. Il sito utilizza il software del forum Discourse (https://discourse.org/)

Lettura Oembed

Spiega come stai utilizzando questa autorizzazione o funzionalità

Discourse (https://discourse.org/) può incorporare post di Instagram e Facebook nei post della community, mantenendo gli utenti sul nostro sito mentre si integra riccamente il contenuto

URL Oembed

The 'what you've done to your bike today' thread - #10218 by jaseyjase - Post your ride - FOA

L’ho appena inviato di nuovo (c’era del testo extra nell’URL Oembed) ed è stato approvato!!! :smiley: in attesa che la mia seconda app venga…

3 Mi Piace

Il testo appare identico a quello della tua prima sottomissione di recensione. Puoi spiegare quali informazioni aggiuntive hai fornito rispetto alla recensione fallita?

Inoltre: hai trasmesso i dati di accesso di Facebook al forum o no?

1 Mi Piace

@znedw la mia domanda rimane in piedi, se puoi aiutare tutti con qualche intuizione su questo per favore?

La prima revisione è fallita perché avevo del testo extra nel campo Oembed URL e il modulo rimuove gli spazi al momento dell’invio, quindi l’URL non funzionava… Questa è l’unica differenza tra i tentativi.

No, nella sezione Piattaforma (dove ho dovuto aggiungere una piattaforma nella procedura guidata), ho semplicemente scritto

Nessun account necessario

Non volevo davvero configurare un account Discourse solo per la revisione di Facebook, quindi ho trovato un post pubblico sul nostro forum che conteneva un’immagine di Instagram incorporata. Pensavo che questo fosse sufficiente a mostrare come funziona l’integrazione. Immagino che Facebook possa leggere il codice sorgente di Discourse e capire da solo :man_shrugging:

Scusa se ho saltato questa domanda. Non ho apportato alcuna modifica a nessuno dei due forum, ho semplicemente trovato un post con un’immagine di Instagram incorporata, come menzionato sopra, e poi ho seguito la procedura guidata per la revisione dell’app su Facebook.

3 Mi Piace

Ciao @znedw, ho seguito la tua guida e la revisione della nostra app è stata approvata dopo 24 ore.

Tuttavia, ho dovuto inserire il link diretto al post di Instagram incorporato nel campo oEmbed-URL, poiché il modulo non accettava il link al topic sul nostro dominio in quel campo. Forse hanno modificato quella parte.

Per il resto, ho seguito esattamente la tua formulazione. E ha funzionato.

1 Mi Piace

Domanda veloce: il processo è cambiato in “Instagram Basic Display” o sono io che sono molto molto cieco? Perché non vedo l’opzione oEmbed, la cosa più vicina per definizione che suppongo sia l’Instagram Basic Display.

Citando:

Instagram Basic Display consente alle app di accedere all’API Instagram Basic Display, che fornisce accesso in sola lettura ai dati di base degli account Instagram degli utenti dell’app.

Utilizza questa scheda per configurare la finestra di autorizzazione dell’API in modo da poter ottenere permessi dagli utenti e per inviare la tua app per la revisione dell’app quando sei pronto per passare alla modalità Live.

Nota che Basic Display non è uno strumento di autenticazione. I dati restituiti dall’API non possono essere utilizzati per autenticare gli utenti dell’app o per accedere alla tua app. Se la tua app utilizza i dati dell’API per autenticare gli utenti, verrà rifiutata durante la revisione dell’app. Se hai bisogno di una soluzione di autenticazione, usa invece Facebook Login.

Tuttavia, richiede altri URL che non sono elencati qui, quindi non sono sicuro, ad esempio:

Impostazione OAuth client

URL di callback di deautorizzazione


(Forse è cambiato qualcosa anche perché qui non funziona, credo?)

https://www.instagram.com/p/CIRhYzFM7Lu

3 Mi Piace

per quanto ne so è ancora oEmbed read con advanced access

1 Mi Piace

Capisco. C’è una differenza con il tutorial, allora.

Invece di essere aggiunto come qualsiasi altra funzionalità (chiamata “Prodotti” nell’interfaccia utente) dalla Dashboard, ora viene richiesto dalla sezione “Richiesta” del menu “Revisione app”. Selezioni la funzionalità e la invii per la revisione.

Il che rende il processo un po’ un escamotage perché richiedono un link con un oEmbed valido per approvarlo… ma non funziona perché la funzionalità non è approvata… :sweat:

4 Mi Piace

Ora funziona sul mio account. Cercherò di riassumere ciò di cui hai bisogno. Non sono particolarmente esperto di tecnologia, quindi non sono sicuro di poter rispondere a molte domande, ma suppongo che dovresti semplicemente copiare le mie impostazioni il più fedelmente possibile per verificare che tutto funzioni.

Hai bisogno sia del login di Facebook (non so se l’API di Instagram Graph sia effettivamente necessaria). Verifica che il login di Facebook funzioni sulla tua installazione di Discourse.

Impostazioni di login di Facebook:

Impostazioni di base:

Impostazioni avanzate:

3 Mi Piace

Ciao a tutti, volevo farvi sapere che a partire da oggi, la descrizione di @Iceman rimane accurata.

Alcuni layout delle pagine sono stati modificati rispetto alla guida (:point_up:), ma la differenza principale è che oEmbed deve essere richiesto dopo che la tua app ha superato la Revisione app.

Dal menu “Revisione app”, puoi effettuare richieste:

La mia app non ha superato la Revisione app, ma @undasein è riuscito a farlo funzionare di recente, con l’aiuto di questa guida e i consigli da https://stackoverflow.com/questions/67998234/starting-using-instagram-oembed-feature.


Buona fortuna nel condividere i tuoi `gram, gente! :slight_smile:

3 Mi Piace

Nella mia richiesta non ho fatto nulla di elaborato. Ho semplicemente scritto “Vorrei incorporare post di Instagram sul mio forum” e mi è stato approvato in un giorno.

1 Mi Piace

Come posso accedere all’oembed read avanzato? Non riesco nemmeno a richiederlo perché il pulsante è disabilitato. Ho fatto delle chiamate API sul grafo, ma non succede nulla nemmeno dopo 24 ore

Alcuni utenti hanno aggirato questo problema inviando l’app per la revisione per un motivo diverso (come l’accesso a Facebook) e, una volta approvata, è possibile richiedere alcune funzionalità, come “Oembed Read”.

Potresti voler contattare i canali di supporto della piattaforma per capire cosa sta succedendo con il tuo account. :+1:

1 Mi Piace

[quote=“Jamie Wilson, post:1, topic:223548, username:jamie.wilson”]noEmbed
[/quote]

oEmbed non esiste più, cosa devo inserire al suo posto?

[quote=“Iceman, post:10, topic:223548, username:Iceman”]Instagram Basic Display
[/quote]

Non vedo l’opzione Oembed, quale hai scelto?

La tua app ha già superato la revisione dell’app @danielabc?

1 Mi Piace

quando vado all’opzione, il pulsante è disattivato e non posso fare clic

quando vado all’opzione, il pulsante è disattivato e non posso fare clic

Il mio accesso è stato revocato perché non è stato utilizzato per 90 giorni. Il che significa, credo, che nessuno sul mio forum ha pubblicato un link a Instagram di recente.

Quindi, ecco lo stato attuale dell’autorizzazione oEmbed Read:

Per richiedere l’accesso avanzato a questa autorizzazione, è necessario effettuare una chiamata API di test con successo. Potrebbero essere necessarie fino a 24 ore dopo la prima chiamata API affinché questo pulsante diventi attivo. Scopri di più sui test

In pratica, come possiamo effettuare una chiamata API con Discourse in questo contesto per richiedere nuovamente l’accesso avanzato? :thinking:

2 Mi Piace