Instagram onebox-Token konfigurieren

:warning: Wichtige Aktualisierungen seit der ursprünglichen Erstellung dieses Leitfadens:

  1. App-Überprüfung ist jetzt erforderlich. Seit September 2021 verlangt Meta, dass Ihre App die App-Überprüfung durchläuft und für die Berechtigung oEmbed Read (für Apps, die nach dem 8. April 2025 erstellt wurden, jetzt Meta oEmbed Read) genehmigt wird. Ohne diese Genehmigung schlagen oEmbed API-Aufrufe fehl. Lesen Sie die Anleitung zur Übermittlung der App-Überprüfung von Meta für Tipps zur Genehmigung.

  2. Instagram Oneboxen werden möglicherweise nicht korrekt gerendert. Seit dem 3. November 2025 hat Meta die Felder thumbnail_url, thumbnail_width, thumbnail_height und author_name aus Instagram oEmbed-Antworten entfernt. Der Instagram Onebox-Code von Discourse hängt derzeit von diesen Feldern ab (lib/onebox/engine/instagram_onebox.rb), was zu fehlerhaften oder leeren Einbettungen führen kann.

  3. Nur Post- und IGTV-URLs werden unterstützt. Discourse wandelt derzeit nur Instagram /p/ (Post)- und /tv/ (IGTV)-URLs in Oneboxen um. Reels (/reel/)-URLs werden nicht unterstützt.

  4. Die Benutzeroberfläche der Facebook Developer Console hat sich seit den im Dezember 2020 aufgenommenen Screenshots unten erheblich geändert. Die allgemeinen Schritte bleiben ähnlich, aber die genauen Bildschirme und Optionen können anders aussehen.


Wenn Sie bereits eine Facebook-App mit Ihrer Discourse-Site verknüpft haben, scrollen Sie nach unten zu Hinzufügen von oEmbed zu Ihrer Facebook-App.

Wenn Sie noch kein Facebook Developer-Konto und keine Facebook-App haben:

Gehen Sie zu https://developers.facebook.com/. Sie werden aufgefordert, sich bei Ihrem Facebook-Konto anzumelden, falls Sie dies noch nicht getan haben. Möglicherweise werden Sie aufgefordert, Ihr Facebook-Konto in ein Entwicklerkonto zu „konvertieren“, falls Sie dies zuvor noch nicht getan haben. Möglicherweise werden Sie aufgefordert, Ihr Konto bei Facebook zu verifizieren, indem Sie eine Telefonnummer hinzufügen oder andere Schritte ausführen. Sie müssen einfach den Anweisungen folgen und tun, was Facebook von Ihnen verlangt.

Sobald Sie ein Facebook Developer-Konto haben, klicken Sie auf dem Startbildschirm von Facebook Developer auf „Meine Apps“:

…und auf „App erstellen“:

Wählen Sie als App-Typ „Etwas anderes“ und klicken Sie auf „Weiter“:

Geben Sie einen „App-Anzeigenamen“ und eine „App-Kontakt-E-Mail-Adresse“ ein. Nachdem Sie die Nutzungsbedingungen und Richtlinien gelesen haben, können Sie auf „App erstellen“ klicken:

Wenn Sie ein Roboter sind: Hier gibt es nichts zu sehen. Piep bop boop. :robot:

Wenn Sie kein Roboter sind: Klicken Sie auf „Ich bin kein Roboter“, folgen Sie den Anweisungen und klicken Sie auf „Senden“.

Glückwunsch! Sie haben eine Facebook-App!

Hinzufügen von oEmbed zu Ihrer Facebook-App:

Scrollen Sie am Ende der Produktliste nach unten, suchen Sie „oEmbed“ und klicken Sie auf „Einrichten“:

Wenn Sie damit einverstanden sind, wie Sie das oEmbed-Produkt verwenden werden, klicken Sie auf das Kontrollkästchen und dann auf „Bestätigen“:

Das oEmbed-Produkt wurde hinzugefügt. Klicken Sie auf „Einstellungen“:

„Anzeigename“ und „Kontakt-E-Mail“ sollten bereits ausgefüllt sein. Sie müssen URLs für Ihre „Datenschutzrichtlinie“ und „Nutzungsbedingungen“ eingeben. Wählen Sie eine „Kategorie“ aus der Liste der verfügbaren Optionen. Klicken Sie auf „Änderungen speichern“, wenn Sie mit allem zufrieden sind:

Klicken Sie oben auf dem Bildschirm auf den Schalter, um von „In Entwicklung“ in den „Live“-Modus zu wechseln:

Klicken Sie auf „Modus wechseln“:

Übermittlung Ihrer App zur App-Überprüfung (seit 2021 erforderlich):

Bevor Ihre App in der Produktion auf die oEmbed-API zugreifen kann, müssen Sie sie zur App-Überprüfung übermitteln und die Berechtigung oEmbed Read (oder Meta oEmbed Read für Apps, die nach dem 8. April 2025 erstellt wurden) anfordern.

  1. Gehen Sie im Dashboard Ihrer App zu App-ÜberprüfungBerechtigungen und Funktionen.
  2. Suchen Sie oEmbed Read (oder Meta oEmbed Read) und klicken Sie auf Anfordern.
  3. Möglicherweise müssen Sie zuerst einen erfolgreichen Test-API-Aufruf tätigen, bevor die Schaltfläche „Anfordern“ aktiviert wird. Es kann bis zu 24 Stunden nach Ihrem ersten API-Aufruf dauern.
  4. Geben Sie bei der Übermittlung eine URL auf Ihrer Discourse-Site an, die eine Instagram-Einbettung enthält, und erklären Sie, dass Ihre Site Discourse Forensoftware verwendet, um Instagram-Posts über die oEmbed-API einzubetten.

Lesen Sie die oEmbed-Dokumentation von Meta für detaillierte Anweisungen zur Übermittlung.

Generieren Ihres App-Zugriffstokens:

Nachdem Sie all dies getan haben, können wir tatsächlich ein App-Token generieren, indem wir den Anweisungen von Facebook unter App Access Tokens folgen. Sie benötigen den Wert des Feldes „App ID“ und den Wert des Feldes „App Secret“. Um das App Secret zu erhalten, klicken Sie auf „Anzeigen“. Möglicherweise werden Sie aufgefordert, sich erneut zu authentifizieren oder ähnliches, aber Sie sollten einen langen hexadezimalen Wert erhalten, den Sie kopieren können:

Gemäß der Dokumentation von Facebook müssen Sie diese Werte an Facebook senden, um ein Token zu generieren. Sind Sie mit der Verwendung von curl vertraut? Großartig! Sie schlagen Folgendes vor (ersetzen Sie {your-app-id} und {your-app-secret} durch die Werte, die Sie vom obigen Bildschirm kopiert haben).

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

Alternativ sollte es auch funktionieren, nur die URL (nachdem diese beiden Werte ersetzt wurden) in Ihren Browser zu kopieren:

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

Facebook antwortet mit einem kleinen JSON-Ausschnitt, der ungefähr so aussehen sollte wie in diesem Beispiel:

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

Kopieren Sie den Wert Ihres access_token, ohne die Anführungszeichen (d. h. in meinem Beispiel wäre es 1234567890654321|c3bd55c09fc5e561552ad7a8717), und gehen Sie zu den Einstellungen Ihrer Discourse-Site. Suchen Sie die Website-Einstellung namens facebook_app_access_token in den Onebox-Einstellungen. Fügen Sie den Wert des „access_token“ in dieses Feld ein:

Klicken Sie auf das :white_check_mark: …und fertig!

Wenn Sie eine URL wie https://www.instagram.com/p/CIRhYzFM7Lu/ in einen Beitrag auf Ihrer Website einfügen, sollte dies zu einer schönen Onebox führen, genau wie dieser:

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

17 „Gefällt mir“

Neue oEmbed-Lese-Funktion und Anforderungen für die App-Prüfung

Heute, am 8. Juni 2021, haben wir v11.0 der Graph API und der Marketing-APIs angekündigt. Mit diesem Update gelten neue Anforderungen für den Zugriff auf oEmbed-APIs . Einige Ihrer Apps greifen derzeit auf die oEmbed-APIs zu und könnten von diesen Änderungen betroffen sein.

Um weiterhin auf die oEmbed-APIs zugreifen zu können, müssen Sie Ihre Apps bis zum 6. September 2021 zur Prüfung einreichen. Wenn Sie einen neuen Zugriff auf die oEmbed-APIs anfordern möchten, müssen Sie Ihre App(s) ebenfalls zur Prüfung einreichen.

Weitere Informationen finden Sie in den aktualisierten Anforderungen. Wenn Ihre Apps bis zum 6. September 2021 nicht auf die oEmbed-API-Funktion geprüft wurden, verlieren sie den Zugriff auf diese Funktion. Um Unterbrechungen beim oEmbed-Zugriff Ihrer Apps zu vermeiden, reichen Sie diese so schnell wie möglich zur App-Prüfung ein.

Neue Regeln von unseren Facebook-Oberherren. Ich habe beide meine Apps gerade zur Prüfung eingereicht. Ich habe einen öffentlichen Beitrag mit einem Instagram-Einbettungs-Code gefunden und direkt verlinkt, um zu zeigen, wie die Integration funktioniert. Hoffentlich ist das ausreichend.

8 „Gefällt mir“


Pech gehabt, die Prüfung ist gescheitert.

Hier ist, was ich eingereicht habe:

Ihre Einreichungsdetails

Kann ein Facebook-Prüfer auf Ihre App zugreifen oder sich dort anmelden, um zu überprüfen, ob Sie Berechtigungen oder Funktionen gemäß der Facebook-Plattformrichtlinie nutzen?

Ja

Plattformeinstellungen

Desktop

Site-URL: https://fixed.org.au/

Kein Konto erforderlich

  1. Besuchen Sie The 'what you've done to your bike today' thread - #10218 by jaseyjase - Post your ride - FOA
  2. Der Instagram-Beitrag ist in die Seite eingebettet. Die Seite läuft mit der Discourse-Forumsoftware (https://discourse.org/).

Oembed-Lesen

Erklären Sie uns, wie Sie diese Berechtigung oder Funktion nutzen

Discourse (https://discourse.org/) kann Instagram- und Facebook-Beiträge in Community-Beiträgen einbetten. Dadurch bleiben die Nutzer auf unserer Website, während der Inhalt reichhaltig eingebettet wird.

Oembed-URL

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

Ich habe es gerade erneut eingereicht (es war zusätzlicher Text in der Oembed-URL enthalten) und es wurde genehmigt!!! :smiley: Ich warte darauf, dass meine zweite App…

3 „Gefällt mir“

Der Text sieht genauso aus wie bei deinem ersten Review-Einreichungsversuch. Kannst du genauer erläutern, welche zusätzlichen Informationen du im Vergleich zum fehlgeschlagenen Review angegeben hast?

Außerdem: Hast du FB-Login-Daten an das Forum weitergegeben oder nicht?

1 „Gefällt mir“

@znedw Meine Frage steht immer noch: Könntest du bitte allen mit einem Hinweis dazu helfen?

Der erste Einreichungsversuch ist gescheitert, weil ich im Feld „Oembed-URL" zusätzlichen Text hatte und das Formular beim Absenden Leerzeichen entfernt, sodass die URL nicht funktionierte … Das ist der einzige Unterschied zwischen den Versuchen.

Nein, im Abschnitt „Plattform" (ich musste im Assistenten eine Plattform hinzufügen), habe ich einfach Folgendes geschrieben:

Kein Konto erforderlich

Ich wollte eigentlich kein Discourse-Konto nur für die FB-Prüfung einrichten, also habe ich einfach einen öffentlichen Beitrag in unserem Forum gefunden, in den ein Instagram-Bild eingebettet war. Ich dachte, das würde zeigen, wie die Integration funktioniert. Vermutlich könnte FB die Discourse-Quelle auslesen und selbst herausfinden :man_shrugging:

Entschuldigung, dass ich das übersehen habe. Ich habe an keinem der beiden Foren wirklich Änderungen vorgenommen, sondern einfach wie oben erwähnt einen Forenbeitrag mit eingebettetem Instagram-Bild gefunden und dann den FB-Prüfungs-Assistenten durchlaufen.

3 „Gefällt mir“

Hallo @znedw, ich habe deinen Leitfaden befolgt und unsere App-Prüfung 24 Stunden später genehmigt bekommen.

Allerdings musste ich den direkten Link zum eingebetteten Instagram-Beitrag in das Feld „oEmbed-URL" eingeben, da das Formular den Link zum Thema auf unserer Domain in diesem Feld nicht akzeptierte. Vielleicht haben sie diesen Teil geändert.

Ansonsten habe ich deine Formulierung genau übernommen. Und es hat funktioniert.

1 „Gefällt mir“

Kurze Frage: Hat sich der Prozess zu „Instagram Basic Display“ geändert oder bin ich sehr, sehr blind? Weil ich die oEmbed-Option nicht sehen kann, vermute ich, dass die Instagram Basic Display die nächstliegende Option ist.

Zitat:

Instagram Basic Display ermöglicht es Apps, auf die Instagram Basic Display API zuzugreifen, die einen schreibgeschützten Zugriff auf grundlegende Daten in den Instagram-Konten von App-Benutzern bietet.

Verwenden Sie diese Registerkarte, um das Autorisierungsfenster der API zu konfigurieren, damit Sie Berechtigungen von Benutzern erhalten und Ihre App zur App-Überprüfung einreichen können, wenn Sie bereit sind, sie in den Live-Modus zu versetzen.

Beachten Sie, dass Basic Display kein Authentifizierungstool ist. Von der API zurückgegebene Daten können nicht zur Authentifizierung Ihrer App-Benutzer oder zur Anmeldung bei Ihrer App verwendet werden. Wenn Ihre App API-Daten zur Authentifizierung von Benutzern verwendet, wird sie während der App-Überprüfung abgelehnt. Wenn Sie eine Authentifizierungslösung benötigen, verwenden Sie stattdessen Facebook Login.

Es erfordert jedoch andere URLs, die hier nicht aufgeführt sind, daher bin ich mir nicht sicher, z. B.:

Client OAuth-Einstellung

Deauthorize Callback URL


(Vielleicht hat sich auch etwas geändert, weil es hier meiner Meinung nach nicht funktioniert?)

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

3 „Gefällt mir“

soweit ich das beurteilen kann, ist es immer noch oEmbed lesen mit erweitertem Zugriff

1 „Gefällt mir“

Ich verstehe. Dann gibt es einen Unterschied zum Tutorial.

Anstatt wie jede andere Funktion (im UI als „Produkte“ bezeichnet) über das Dashboard hinzugefügt zu werden, wird sie jetzt im Abschnitt „Anfordern“ des Menüs „App-Überprüfung“ angefordert. Sie wählen die Funktion aus und reichen sie zur Überprüfung ein.

Das macht den Prozess irgendwie lückenhaft, weil sie einen Link mit einem gültigen oEmbed zum Genehmigen anfordern… aber es funktioniert nicht, weil die Funktion nicht genehmigt ist… :sweat:

4 „Gefällt mir“

Es funktioniert jetzt auf meinem Konto. Ich werde versuchen, mit dem zusammenzufassen, was Sie brauchen. Ich bin kein Technikexperte, daher bin ich mir nicht sicher, ob ich viele Fragen beantworten kann, aber ich nehme an, Sie können meine Einstellungen so genau wie möglich kopieren, um zu überprüfen, ob alles funktioniert.

Sie benötigen sowohl die Facebook-Anmeldung (ich weiß nicht, ob die Instagram-Graph-API tatsächlich benötigt wird). Überprüfen Sie, ob die Facebook-Anmeldung auf Ihrer Discourse-Installation funktioniert

Facebook-Anmeldeeinstellungen:

Grundeinstellungen:

Erweiterte Einstellungen:

3 „Gefällt mir“

Hallo zusammen, ich wollte euch wissen lassen, dass die Beschreibung von @Iceman ab heute korrekt ist.

Einige der Seitenlayouts wurden gegenüber der Anleitung geändert (:point_up:), aber der Hauptunterschied besteht darin, dass oEmbed nach der Genehmigung Ihrer App durch die App-Überprüfung angefordert werden muss.

Im Menü „App-Überprüfung“ können Sie Anfragen stellen:

Meine App hat die App-Überprüfung noch nicht bestanden, aber @undasein konnte sie kürzlich zum Laufen bringen, mit Hilfe dieser Anleitung und Ratschlägen von https://stackoverflow.com/questions/67998234/starting-using-instagram-oembed-feature.


Viel Glück beim Teilen eurer `grams! :slight_smile:

3 „Gefällt mir“

Ich habe in meiner Anfrage nichts Ausgefallenes gemacht. Ich habe einfach geschrieben „Ich möchte Instagram-Posts auf meinem Forum einbetten“ und es wurde an einem Tag genehmigt.

1 „Gefällt mir“

Wie kann ich auf die erweiterte oembed-Lesefunktion zugreifen? Ich kann sie nicht einmal anfordern, da die Schaltfläche deaktiviert ist. Ich habe einige API-Aufrufe auf der Graph-API durchgeführt, aber es passiert nichts, selbst nach 24 Stunden

Einige Benutzer haben dies umgangen, indem sie die App aus einem anderen Grund zur Überprüfung eingereicht haben (z. B. Facebook-Login). Sobald sie genehmigt wurde, können einige Funktionen angefordert werden, wie z. B. „Oembed Read“.

Sie sollten sich möglicherweise an die Support-Kanäle der Plattform wenden, um zu verstehen, was mit Ihrem Konto passiert. :+1:

1 „Gefällt mir“

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

noEmbed existiert nicht mehr, was soll ich stattdessen einfügen?

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

Ich kann die Oembed-Option nicht sehen, welche hast du gewählt?

Hat Ihre App das App Review bereits bestanden, @danielabc?

1 „Gefällt mir“

Wenn ich zu der Option gehe, ist der Button aus und ich kann nicht klicken

Wenn ich zu der Option gehe, ist der Button aus und ich kann nicht klicken

Mein Zugriff wurde widerrufen, da er 90 Tage lang nicht genutzt wurde. Das bedeutet, dass, wie ich vermute, niemand in meinem Forum kürzlich einen Instagram-Link gepostet hat.

Hier ist der aktuelle Status der oEmbed Read-Berechtigung:

Um erweiterten Zugriff auf diese Berechtigung anzufordern, müssen Sie einen erfolgreichen API-Testaufruf durchführen. Es kann bis zu 24 Stunden nach dem ersten API-Aufruf dauern, bis diese Schaltfläche aktiv wird. Mehr über Tests erfahren

Wie machen wir in diesem Zusammenhang praktisch einen API-Aufruf mit Discourse, um erneut erweiterten Zugriff anzufordern? :thinking:

2 „Gefällt mir“