TL;DR: Mit der Instagram Graph API von Meta kannst du Posts vollautomatisch erstellen und planen. Du brauchst ein Meta-Developer-Konto, eine registrierte App und Access-Tokens via OAuth. In diesem Guide zeige ich dir Schritt für Schritt, wie du die API einrichtest und nutzt.
Wenn Ihr einen Blog habt (wie ich) dann liegt natürlich die Möglichkeit nahe, alle möglichen Social-Media-Kanäle automatisiert mit Posts zu bespielen. Warum auch alles manuell machen, wenn man es mit einer REST-API automatisch machen kann?
Damit du alles Weitere verstehst, empfehle ich dir meinen Artikel über REST-APIs anzusehen, da du sonst vermutlich nicht alles verstehen wirst 👇

Vorbereitungen 💡
Bevor du an dieser Stelle weiter machen kannst, benötigst du zwingend ein Meta-Konto und musst dich bei Meta als Developer registrieren. Wenn die Registrierung abgeschlossen ist, musst du dir eine neue App anlegen und alle entsprechenden Informationen hinterlegen. Zusätzlich benötigst du auch ein Instagram-Business-Konto.
Anlage der App bei Meta 💻
Um eine App bei Meta für Instagram anzulegen, musst du dich im Meta Developer Portal anmelden. Im Dashboard kannst du dann eine neue App anlegen:

Im nachfolgenden Bildschirm wählst du dann "andere" bzw. "other" aus, da du ja explizit die Instagram Basic Display API verwenden möchtest:

Jetzt wird es wichtig:
Wähle in dem nächsten Step unbedingt "Business" bzw. "Geschäft" aus, da du sonst keinen Zugriff auf die API von Instagram bekommst.

Als Nächstes gibst du einer App einen treffenden Namen, den kannst du aber später wieder ändern. Wenn du möchtest, kannst du hier auch noch einen Business Manager auswählen, ist aber kein Muss. Damit hast du dann die App angelegt.
Instagram Graph API einrichten ⚒️
Nach der Anlage der App wirst du weitergeleitet auf das App-Dashboard. Hier wählst du dann die Instagram Graph API aus uns sagst "Setup" bzw. "Einrichten".

Danach erscheint die folgende Seite, damit ist auch prinzipiell alles getan:

Damit wäre die Instagram Graph API auch erstellt. Zudem musst du noch "Facebook Login for Business" hinzufügen:

Auch hier sagst du "Setup". Es öffnet sich nun ein Fenster mit den Einstellungen für den Login. Hier musst du eine "OAuth Redirect URI" hinterlegen:

An diese Adresse wird später der Authentication Code gesendet. Mit diesem Code wird dann ein kurzlebiger Access Token erstellt der 2 Stunden gültig ist. Diesen kannst du dann aber später zu einem langlebigen Access Token umwandeln, der dann 60 Tage gültig ist.
Ab hier wird es dann technisch und du musst Einstellungen für OAuth tätigen. Diese sind zwingend notwendig, damit du die Access-Tokens bekommst. OAuth selbst werde ich später in einem eigenen Artikel einmal beleuchten. Aber grundlegend arbeitet der OAuth-Flow mit Instagram wie folgt:

Wichtig sind hier die nun die Einstellungen für die OAuth-Callbacks. Die du wie folgt setzen solltest:

OAuth redirect url: https://localhost:5000/auth
Deauthorize callback URL: https://localhost:5000/auth/cancel
Data Deletion Request URL: https://localhost:5000/auth/delete
Wirklich wichtig ist nur die OAuth redirect url da hier hin der generierte Code für den späteren Access-Token hingeschickt wird.
Hast du die Einstellungen gemacht, musst du noch einen eigenen Instagram-Account als Tester hinzufügen:

Es öffnet sich eine neue Seite wo du dann neue Leute via "Add People" hinzufügen kannst und dann musst du Instagram Tester hinzufügen und kann deinen eigenen Benutzer einladen:

Der Benutzer wurde dann hinzugefügt und muss nun nur noch die Test-Einladung annehmen:

Klick einfach hier, wenn du die Einladung annehmen möchtest. Du musst dann bei Instagram auf Test-Einladungen klicken und solltest deine Einladung sehen:

Nimm sie dort einfach an und das wars.
Access-Tokens abrufen 🔐
Damit du nun auf Inhalte Zugreifen kannst, muss du dich bei deinen API-Calls immer authentifizieren. Das geht über die OAuth-Access-Tokens. Die API von Instagram generiert in der Regel nur so genannte "short-lived access tokens", die nur eine Laufzeit von einer Stunde haben. Solltest du länge Laufzeiten benötigen, musst du diese Tokens in "long-lived access tokens" umwandeln. Diese haben dann eine Laufzeit von 60 Tagen.
Mehr dazu findest du direkt bei der Instagram Graph API Dokumentation. Um das alles abzukürzen habe ich ein Python Skript erstellt, was dir die ganze Arbeit abnimmt und dir die Tokens schön aufbereitet, so dass du diese ganz easy verwenden kannst.
Das Skript findest du hier:
Hast du das Skript soweit gecloned und alle Dependencies installiert, kannst du das Skript mit deiner ClientIDund dem ClientSecretausführen:
python main.py --client-id [instagram-client-id] --client-secret [instagram-client-secret]Es öffnet sich dann eine Seite in einem Browser, bei der du dich bei Instagram anmelden musst, sofern noch nicht geschehen. Danach wirst du gefragt ob du eine erzeugte App mit deinem Konto verknüpfen möchtest bzw. ob du der App die Rechte einräumen möchtest, in deinem Namen auf Instagram zugreifen zu dürfen:

Hast du zugestimmt, wirst du auf die Seite umgeleitet, die dir die Access-Tokens ausgibt, die du später dann für die "richtigen" API-Calls bei Instagram nutzen kannst:
localhost aufgerufen wird. Instagram benötigt aber für die Callbacks zwingend HTTPS. Das Skript erzeugt zwar Zertifikate, damit sich die Seite überhaupt öffnet, aber es ist nur ein selbst signiertes Zertifikat, dem die Browser im Standard nicht vertrauen.Testen der API mit den Access-Tokens
Hast du deinen Access-Token erhalten, kannst du die API direkt testen. Ein einfacher GET-Request auf den Endpunkt /me/media zeigt dir deine bisherigen Medien an. Um einen neuen Post zu erstellen, nutzt du einen zweistufigen Prozess:
- Container erstellen: Du sendest einen POST-Request an den Endpunkt /{ig-user-id}/media mit dem Bild-URL und der Caption.
- Veröffentlichen: Mit der zurückgegebenen Container-ID sendest du einen weiteren POST-Request an /{ig-user-id}/media_publish.
# 1. Container erstellen
curl -X POST "https://graph.facebook.com/v19.0/{ig-user-id}/media" \
-d "image_url=https://example.com/bild.jpg" \
-d "caption=Mein automatisierter Post" \
-d "access_token={access-token}"
# 2. Post veröffentlichen
curl -X POST "https://graph.facebook.com/v19.0/{ig-user-id}/media_publish" \
-d "creation_id={container-id}" \
-d "access_token={access-token}"Wenn du den ganzen Prozess noch weiter automatisieren möchtest, schau dir auch Workflow-Automatisierung mit n8n an:
Fazit
Die Instagram Graph API bietet eine mächtige Möglichkeit, Posts programmatisch zu erstellen und zu veröffentlichen. Auch wenn die Einrichtung mit OAuth, Access-Tokens und der Meta Business Suite zunächst aufwendig erscheint, lohnt sich der Aufwand langfristig. Einmal eingerichtet, kannst du deine Social-Media-Präsenz komplett automatisieren und so wertvolle Zeit sparen.
Wenn du Fragen hast oder Hilfe bei der Einrichtung benötigst, schreib mir gerne einen Kommentar oder kontaktiere mich direkt. Happy Coding!
Mehr Artikel entdecken
Automate Instagram Posts with the Graph API 📸
With the Instagram Graph API and Meta Business Suite, you can create and schedule posts fully automatically. Here's how with the REST API.
GraphQL: Zukunft der APIs 🌐
GraphQL vs. REST: Entdecke die Vorteile und Nachteile der modernen Abfragesprache für APIs! 🌐
NestJS: Server-Framework auf Steroide 🎉
NestJS ist das Turbo-Framework für NodeJS-Devs! 🚀 Mit TypeScript, OOP & FP wird jede Codezeile zum Vergnügen! 😎
Home Assistant mit WebHooks automatisieren
Automationen in Home Assistant durch externe Systeme feuern 🚀 Ich zeig dir wie es geht!
Ghost: Das bessere WordPress
Warum du von WordPress zu Ghost wechseln solltest, erkläre ich dir in diesem Artikel 🛠️
