Fehlerbehebung & Token-Leitfäden
Schritt-für-Schritt-Anweisungen zum Verbinden von LinkedIn, Facebook, Instagram und YouTube mit ContentFlows. Jede Plattform benötigt zwei Werte: einen Zugriffstoken (der die Berechtigung erteilt) und eine ID (welches Konto / welche Seite / welcher Kanal veröffentlicht werden soll). Beide werden in dein Dashboard eingefügt.
Wie Zugangsdaten gespeichert werden
Alle Werte der vier Plattformen werden als ein einzelner verschlüsselter JSON-Blob im AWS Secrets Manager unter contentflows/tenants/YOUR_TENANT_ID/social-tokens gespeichert. Geheimnisse werden nie protokolliert, nach dem Speichern nie wieder angezeigt und sind deinem Konto isoliert zugeordnet. ContentFlows speichert niemals dein Social-Media-Passwort.
ContentFlows verwendet die LinkedIn UGC Posts API, um in deinem Namen zu veröffentlichen. Du brauchst einen Zugriffstoken mit dem Berechtigungsbereich w_member_social sowie die Member URN des Kontos, unter dem die Beiträge erscheinen sollen.
Felder, nach denen ContentFlows dich fragen wird
LINKEDIN_ACCESS_TOKEN- OAuth-2.0-Zugriffstoken (60 Tage gültig). Beginnt mit AQV… oder ähnlich.
LINKEDIN_AUTHOR_ID- Member URN — sieht aus wie urn:li:person:XXXXXXXXXX oder urn:li:organization:NNNNNN für eine Company Page.
Voraussetzungen
- Ein LinkedIn-Konto (persönliches Profil) — Beiträge werden von diesem Konto veröffentlicht
- Ein kostenloses LinkedIn-Entwicklerkonto — du erstellst es automatisch, wenn du eine App erstellst
Schritt für Schritt
Gehe zum LinkedIn Developer Portal
Fülle die App-Details aus
- App name: beliebig — z. B. „ContentFlows Publisher“
- LinkedIn page: du musst eine LinkedIn Company Page verknüpfen. Wenn du noch keine hast, erstelle zuerst eine einfache Unternehmensseite (kostenlos).
- App logo: lade ein beliebiges quadratisches Bild hoch
Fordere das Produkt 'Share on LinkedIn' an
Füge deine Redirect URI hinzu
https://www.linkedin.com/developers/tools/oauth/redirectKlicke auf Update.
Generiere das Zugriffstoken
w_member_social (und r_liteprofile, falls verfügbar), klicke auf Request access token, dann auf Allow. Kopiere das Token — es wird nicht erneut angezeigt. Das ist dein LINKEDIN_ACCESS_TOKEN.Finde deine Member URN
GET https://api.linkedin.com/v2/userinfoDie Antwort enthält
sub — setze davor urn:li:person:, um deine URN zu bilden. Wenn zum Beispiel sub = "ABC123xyz", dann ist deine URN urn:li:person:ABC123xyz. Das ist dein LINKEDIN_AUTHOR_ID.urn:li:organization:COMPANY_PAGE_NUMERIC_ID — die numerische ID ist in der Admin-URL der Page sichtbar.Füge beide Werte in ContentFlows ein
ContentFlows veröffentlicht auf einer Facebook Page (nicht auf einem persönlichen Profil). Du brauchst ein Page access token mit der Berechtigung pages_manage_posts sowie die numerische Page ID.
Felder, nach denen ContentFlows dich fragen wird
FB_PAGE_ACCESS_TOKEN- Langfristiges Page-Access-Token (60 Tage) von Meta for Developers.
FB_PAGE_ID- Die numerische ID der Facebook Page, die du verwaltest (z. B. 123456789012345).
Voraussetzungen
- Ein Facebook-Konto, das Admin einer Facebook Page ist
- Wenn du noch keine Facebook Page hast, erstelle eine unter facebook.com/pages/create (kostenlos, dauert 2 Minuten)
Schritt für Schritt
Öffne das Meta for Developers-Portal
Wähle den App-Typ und fülle die Details aus
Füge das Produkt Facebook Login hinzu
Hole ein User-Token aus dem Graph API Explorer
- Wähle oben rechts im Dropdown deine App aus
- Klicke auf Generate Access Token
- Aktiviere im Berechtigungs-Popup alle folgenden:
pages_manage_posts— erforderlich zum Veröffentlichen von Beiträgen (der am häufigsten fehlende Bereich)pages_read_engagementpages_show_listbusiness_managementinstagram_basic— nur wenn du dieses Token auch für Instagram verwenden möchtestinstagram_content_publish— nur wenn du dieses Token auch für Instagram verwenden möchtest
- Klicke auf Generate Access Token und autorisiere
Verlängere das User-Token zu einem langfristigen Token (60 Tage)
Leite das Page-Access-Token UND die Page ID ab
GET /me/accounts → SubmitIn der JSON-Antwort finde deine Page. Sie hat zwei wichtige Felder:
access_token→ das ist deinFB_PAGE_ACCESS_TOKEN— da es von einem langfristigen User-Token abgeleitet wurde, läuft dieses Page-Token nie abid→ das ist deinFB_PAGE_ID
Füge beide Werte in ContentFlows ein
Prüfe, ob das Token die richtigen Berechtigungen hat (optional, aber empfohlen)
- Type:
PAGE(nichtUSER— wenn dort USER steht, hast du in Schritt 6 das falsche Token kopiert) - Expires: Never (wenn ein Datum angezeigt wird, hast du Schritt 5 übersprungen — das User-Token war beim Aufruf von
/me/accountsnoch kurzlebig) - Scopes: muss
pages_manage_postsenthalten. Wenn es fehlt, hast du das Kästchen in Schritt 4 nicht aktiviert — starte erneut bei Schritt 4.
{"error":{"message":"(#200) Permissions error"}}fehlschlagen, fehlt dem Token fast immer pages_manage_posts. Prüfe es mit dem Debugger (Schritt 8) und generiere es bei Bedarf neu.Für die Veröffentlichung auf Instagram wird die Facebook Graph API verwendet, daher muss dein Instagram-Konto ein Professional-Konto (Business oder Creator) sein, das mit einer Facebook Page verknüpft ist. Persönliche Instagram-Konten können nicht über die API veröffentlichen.
Felder, nach denen ContentFlows dich fragen wird
IG_ACCESS_TOKEN- Optional — leer lassen und ContentFlows fällt auf FB_PAGE_ACCESS_TOKEN zurück. Nur ausfüllen, wenn du ein dediziertes Instagram-Token hast.
IG_BUSINESS_ACCOUNT_ID- Die Instagram-Business-Account-ID, die mit deiner Facebook Page verknüpft ist (z. B. 17841412345678901).
Voraussetzungen
- Ein Instagram-Konto vom Typ Business oder Creator (kein persönliches Konto)
- Dieses Instagram-Konto ist mit einer Facebook Page verknüpft, die du verwaltest
- Eine Meta-Entwickler-App mit der Berechtigung
instagram_content_publish
In ein Professional-Konto umwandeln (falls nötig)
Kontotyp in der Instagram-App wechseln
Instagram mit deiner Facebook Page verknüpfen
Die Instagram-Business-Account-ID erhalten
Öffne den Graph API Explorer
instagram_basic, instagram_content_publish, pages_read_engagement, pages_manage_postsFinde deine Instagram-Business-Account-ID
GET /me/accounts aus. Suche deine Page und kopiere ihre id. Führe dann Folgendes aus:GET /{page-id}?fields=instagram_business_account(ersetze
{page-id} durch deine Page-ID). Die Antwort enthält ein Objekt instagram_business_account — kopiere dessen id. Das ist dein IG_BUSINESS_ACCOUNT_ID.Füge die Werte in ContentFlows ein
IG_BUSINESS_ACCOUNT_ID angeben.YouTube
ContentFlows verwendet die YouTube Data API v3, um Video-Metadaten (Titel, Beschreibungen, Tags) für deinen Content-Kalender zu generieren. Du brauchst einen API-Schlüssel aus der Google Cloud Console und die ID deines Kanals.
Felder, nach denen ContentFlows dich fragen wird
YOUTUBE_API_KEY- Google-Cloud-API-Schlüssel mit aktivierter YouTube Data API v3. Beginnt mit AIza…
YOUTUBE_CHANNEL_ID- Deine YouTube-Kanal-ID (z. B. UCxxxxxxxxxxxxxxxxxxxxxx). Zu finden in YouTube Studio → Einstellungen → Kanal → Erweiterte Einstellungen.
Voraussetzungen
- Ein Google-Konto
- Ein YouTube-Kanal, der mit diesem Konto verknüpft ist
- Ein kostenloses Google-Cloud-Projekt (du erstellst es im ersten Schritt)
Schritt für Schritt
Erstelle ein Google-Cloud-Projekt
Aktiviere die YouTube Data API v3
Erstelle einen API-Schlüssel
YOUTUBE_API_KEY.Finde deine YouTube Channel ID
UC. Das ist dein YOUTUBE_CHANNEL_ID.Füge beide Werte in ContentFlows ein
Sendedomain (DKIM / SPF / DMARC)
Standardmäßig werden Newsletter von noreply@contentflows.cc gesendet. Die Authentifizierung deiner eigenen Domain verbessert die Zustellbarkeit (weniger Spam-Ordner-Landungen), da die Absenderadresse mit DKIM-Signaturen und deiner sichtbaren Marke übereinstimmt.
Voraussetzungen
- Du besitzt eine Domain (z. B.
your-business.com). - Du kannst bei deinem Registrar DNS-Einträge erstellen (Cloudflare, Route53, GoDaddy, Namecheap usw.).
Schritt für Schritt
Starte den Ablauf
your-business.com) → klicke auf Save & show DNS records.Kopiere die 5 DNS-Einträge
- 3 × CNAME (DKIM-Tokens)
- 1 × TXT auf der Root-Domain (SPF)
- 1 × TXT unter
_dmarc.your-domain.com(DMARC)
Bei deinem DNS-Anbieter einfügen
abc123._domainkey.your-domain.com).Verifizieren
Fertig
newsletter@your-domain.com als From-Header, mit DKIM-Signaturen, SPF-Bestätigung und DMARC-Ausrichtung.noreply@contentflows.cc zurück.Abonnenten importieren
Die Schaltfläche + Import im Tab Newsletter öffnet ein Modal mit drei Tabs:
CSV-Upload
Lade eine .csv-Datei hoch. Die Kopfzeile wird automatisch erkannt (jede Spalte, deren Name email enthält, wird als E-Mail-Spalte behandelt; jede Spalte mit name oder first wird als Name behandelt). Ungültige E-Mail-Adressen werden abgelehnt; Duplikate werden übersprungen. Aktiviere das Kontrollkästchen für die Zustimmung, bevor Import aktiviert wird.
Mailchimp
Füge deinen Mailchimp-API-Schlüssel ein (Format: abc123...-us21 — der Teil nach dem letzten Bindestrich ist das Data Center) und die Audience ID (Mailchimp Audience-Dashboard → Settings → Audience name and defaults → Audience ID). ContentFlows zieht alle abonnierten Mitglieder.
ConvertKit
Füge deinen ConvertKit-API-Schlüssel ein (Settings → Advanced → API Key). Alle bestätigten Abonnenten werden importiert.
Häufige Probleme
- Mailchimp 401 Unauthorized — der API-Schlüssel ist falsch oder das Konto hat ihn deaktiviert. Erneuere ihn in Mailchimp → Account → Extras → API keys.
- „Keine gültigen E-Mail-Adressen“ — der CSV-Parser hat keine E-Mail-Spalte erkannt. Prüfe, ob es eine Kopfzeile und eine Spalte mit dem exakten Namen
emailgibt. - Import endet sofort mit 0 hinzugefügt — jede Zeile war bereits in deiner Liste. Das ist bei erneuten Importen normal.
Häufige Probleme
Token ist ungültig oder abgelaufen
Zugriffstokens laufen ab. LinkedIn-Tokens halten etwa 60 Tage. Facebook-/Instagram-Page-Tokens laufen nie ab, wenn sie von einem langfristigen User-Token abgeleitet werden (folge den Schritten im Facebook-Abschnitt genau). Generiere ein neues Token und aktualisiere es in Integrations.
Facebook: (#200) Permissions error beim Veröffentlichen
Mit Abstand die häufigste Ursache: Dem Page-Token fehlt der Bereich pages_manage_posts. Dieser Bereich wird im Berechtigungs-Popup leicht übersehen, weil der Graph API Explorer ihn standardmäßig nicht aktiviert. Prüfe dein Token im Access Token Debugger — wenn pages_manage_posts nicht in der Scopes-Liste steht, generiere das Token ab Schritt 4 der Facebook-Anleitung neu und setze diese Berechtigung explizit.
LinkedIn: ungültige URN
Die Member URN muss mit urn:li:person: (für persönliche Profile) oder urn:li:organization: (für Company Pages) beginnen, gefolgt von der eindeutigen ID des Kontos. Eine reine numerische oder alphanumerische Zeichenfolge ist für sich allein keine gültige URN.
Unzureichende Berechtigungen auf LinkedIn
Deine LinkedIn-App hat das Produkt Share on LinkedIn nicht genehmigt oder das Token wurde ohne w_member_social generiert. Gehe zurück zu Schritt 3 der LinkedIn-Anleitung und generiere das Token dann erneut.
Facebook: falsche Page ID
Die Page ID ist das numerische id-Feld aus /me/accounts, NICHT der lesbare Benutzername in der Page-URL. Wenn du aus Versehen den Benutzernamen einfügst, schlagen Beiträge fehl.
Du musst Admin der Facebook Page sein
Das Facebook-Konto, das das Token erzeugt hat, ist kein Admin der Ziel-Page. Bitte den Admin der Page, das Token selbst zu erzeugen, oder lass dich unter facebook.com → Page settings → Page roles als Admin hinzufügen.
Instagram: kein Business- oder Creator-Konto
Persönliche Instagram-Konten können die Content Publishing API nicht verwenden. Folge den oben beschriebenen Umwandlungsschritten.
Instagram: Konto nicht mit einer Facebook Page verknüpft
Dein Instagram-Professional-Konto ist nicht mit einer Facebook Page verbunden. Gehe zu Instagram Settings → Account → Linked Accounts → Facebook und stelle die Verknüpfung her.
YouTube: API-Kontingent überschritten
Die YouTube Data API hat ein Standardkontingent von 10.000 Einheiten/Tag, was für ContentFlows-Metadatenabfragen mehr als ausreichend ist. Wenn du das Limit erreichst, wird dieselbe API-Schlüssel wahrscheinlich auch anderswo verwendet — erstelle einen dedizierten Schlüssel für ContentFlows.
Immer noch festgefahren?
Kontaktiere den Support mit der Fehlermeldung und der Plattform, die du verbindest. Gib die Schrittnummer an, bei der du hängen geblieben bist.