Je API-sleutels van de platforms ophalen

Gevorderd Laatst bijgewerkt 9 aug 2026

Op deze pagina

Phoenix Clips publiceert vanuit je eigen accounts via je eigen API-credentials — er gaat niets via de servers van Phoenix, en Phoenix ziet je tokens nooit. De prijs daarvan is een eenmalige wandeling door drie developer-consoles. Deze pagina is die wandeling.

Waar de waarden terechtkomen, hangt af van waar je instantie draait:

  • Lokale installatie: het tabblad Settings → This install in het paneel — elke sectie hieronder noemt de precieze velden. De credentials landen in de credential store van Windows, versleuteld onder je eigen account.
  • Eigen cloud-instantie: dezelfde namen, maar als omgevingsvariabelen op je host (FB_APP_ID, YT_CLIENT_ID, …).

Behandel elk token als een wachtwoord. Access tokens, refresh tokens, app secrets en client secrets geven volledige toegang tot je accounts. Belandt er één op een screenshot, in een openbare chat, in git of in een supportticket — beschouw hem dan als gelekt en geef een nieuwe uit.

Facebook en Instagram (Meta)

Eén (gratis) Meta-app dekt beide platforms. De keten ziet er zo uit: je Facebook-gebruiker → een Facebook Page → het Instagram professional account dat aan die Page gekoppeld is → je Meta-app → tokens → publiceren en statistieken.

Voordat je begint

  • Je beheert een Facebook Page — een Page, niet alleen een persoonlijk profiel.
  • Je Instagram-account staat op Professional (Business of Creator).
  • Dat Instagram-account is gekoppeld aan de Facebook Page.
  • Je meldt je bij Meta for Developers aan als de Facebook-gebruiker die die Page beheert.

1. Koppel Instagram aan de Facebook Page

Ingelogd zijn op instagram.com is niet de koppeling — de Page zelf moet het account kennen:

  1. Schakel op Facebook van je profiel over naar de Page.
  2. Open Settings & privacy → Settings → Linked accounts (of het item Instagram).
  3. Connect account, meld je aan bij het juiste Instagram-account, bevestig.

Zegt OAuth later “You don’t have any Instagram accounts” — dan staat het account niet op Professional, of is de koppeling hierboven niet vanaf de Page gemaakt.

2. Maak de Meta-app aan

  1. Meta for DevelopersMy Apps → Create App.
  2. Een duidelijke naam naar keuze; controleer het contact-e-mailadres; Next.
  3. Kies bij Use cases voor Content management → Manage everything on your PageNext.
  4. Bij Business is “I don’t want to connect a business portfolio yet” prima.
  5. Rond het af. Je App ID en App secret staan onder App settings → Basic — dat zijn de eerste twee velden in de sectie Facebook & Instagram van het paneel.

3. Voeg de Facebook-permissies toe

Use cases → Manage everything on your Page → Customize → Permissions and features. De service gebruikt precies deze:

PermissieWaarvoor Phoenix Clips hem nodig heeft
pages_show_listde Page vinden en haar token uitgeven
pages_read_engagementde eigen posts van de Page lezen
pages_manage_postsde clip publiceren
read_insightsweergaven en bereik
pages_manage_engagementstatistieken van Reels, en de eerste reactie plaatsen namens de Page

Staat Meta in de huidige flow op business_management — voeg hem dan toe; sla over wat het verder alleen maar aanbiedt.

4. Voeg Instagram toe aan dezelfde app

  1. Voeg de use case Manage messaging & content on Instagram toe.
  2. Kies in Instagram API voor API setup with Facebook loginniet “with Instagram login”, dat is een andere flow met andere tokens.
  3. Zet onder Manage content on Instagram → Go to permissions and features aan:
PermissieWaarvoor
instagram_basichet professional account zien
instagram_content_publishingReels publiceren (oudere documentatie noemt het instagram_content_publish — neem wat je dashboard laat zien)
instagram_manage_insightsplays en bereik
instagram_manage_commentsde automatische eerste reactie
instagram_manage_contentseen Reel verwijderen wanneer je de clip terugtrekt — zonder hem is een gepubliceerde Reel hiervandaan nooit meer weg te halen, en kan de clip nooit opnieuw gepubliceerd worden

5. Genereer het token en maak verbinding

  1. Zet App ID en App secret eerst in het paneel: Settings → This install → Facebook & Instagram, opslaan.
  2. Open Tools → Graph API Explorer, kies je app en houd de host op graph.facebook.com (overschakelen naar .instagram.com is een andere API, geen “Instagram-token”).
  3. Voeg de permissies uit beide tabellen toe en druk op Generate Access Token. Geef in het OAuth-venster toegang tot de juiste Page en het bijbehorende Instagram-account — alleen die twee selecteren is genoeg.
  4. Kopieer het token naar Settings → Connections → Facebook & Instagram en druk op Connect.

Het paneel wisselt dat kortlevende token server-side in voor een gebruikerstoken van 60 dagen en een permanent Page-token; niets kortlevends wordt bewaard. Het tabblad Connections toont beide vervaldatums, en op datzelfde scherm staat elke permissie die het token bleek te missen.

Als er iets misgaat

SymptoomWat te controleren
You don’t have any Instagram accountsStaat Instagram op Professional? Gekoppeld aan de Page zelf, niet alleen via Accounts Center? OAuth gedaan als de gebruiker die de Page beheert?
Invalid Scopes op een permissieDie moet eerst aan staan in Use cases → Permissions and features, en pas daarna worden aangevraagd in de Explorer.
Instagram zichtbaar in de browser maar niet in OAuthEen browsersessie is geen Page-koppeling — doe stap 1 opnieuw.

YouTube

Twee manieren om te verbinden, hetzelfde resultaat — video’s landen hoe dan ook op je eigen kanaal:

  1. Authorize with Google — één klik in het paneel, niets in te richten. In afwachting van Google’s beoordeling van onze gedeelde app; de knop in Settings → Connections licht op zodra die goedgekeurd is.
  2. Je eigen OAuth-client — de route hieronder. ~20 minuten in Google Cloud, en je installatie praat rechtstreeks met YouTube, volledig los van Phoenix. Werkt vandaag al, en blijft voor altijd ondersteund.

Uploads gaan rechtstreeks naar je kanaal via je eigen (gratis) OAuth-client van Google Cloud. De keten: Google-account → Cloud-project → OAuth-client → refresh token → YouTube Data API.

1. Project en API

  1. Open Google Cloud Console en maak een project aan (naam naar keuze).
  2. APIs & Services → Library → zet YouTube Data API v3 aan. Meer is niet nodig — weergaven en likes worden via dezelfde API gelezen.

APIs & Services → OAuth consent screen:

  • App name, support email, developer email — die van jou.
  • Audience: External.
  • Zolang de app de status Testing heeft, voeg je je eigen Google-account toe onder Test users.

Je hoeft hier geen scopes met de hand uit te kiezen; het paneel vraagt er bij het verbinden precies drie — youtube.upload om een video te plaatsen, youtube.readonly voor het kanaal en de weergavecijfers, en youtube.force-ssl om een video weer offline te halen (het recht om te uploaden geeft op zichzelf geen recht om te verwijderen).

3. OAuth-client

  1. APIs & Services → Credentials → Create credentials → OAuth client ID.
  2. Application type: Web application.
  3. Voeg onder Authorized redirect URIs letterlijk de redirect-URI toe die het paneel toont in Settings → Connections → YouTube — voor een lokale installatie is dat http://127.0.0.1:8787/api/youtube/callback.
  4. Create — kopieer de Client ID en het Client secret naar Settings → This install → YouTube, opslaan.

4. Verbinden

Settings → Connections → YouTube → Connect via Google. Meld je aan met het account dat het kanaal bezit en sta beide scopes toe. De service bewaart alleen het refresh token.

Google waarschuwt dat de app niet geverifieerd is — dat hoort zo, het is jouw app; Advanced → doorgaan is de weg erlangs.

De drie valkuilen bij Google

  • In de modus Testing verlopen tokens na 7 dagen. Zolang het consent screen op Testing staat, sterft het refresh token wekelijks en verbind je opnieuw. Zet de app op In production (pagina Audience → Publish app) — verificatie is daar niet voor nodig, alleen om het waarschuwingsscherm kwijt te raken.
  • De waarschuwing “private tot geverifieerd” bijt hier niet. In Google’s documentatie staat dat niet-geverifieerde projecten op private-locked uploaden, maar die beperking richt zich op apps die naar de kanalen van anderen uploaden. Met je eigen project en je eigen kanaal — exact deze opzet — komen uploads eruit met de zichtbaarheid die je gekozen hebt.
  • De quota is goed voor ruwweg zes uploads per dag. Eén upload kost 1600 van de standaard 10 000 dagelijkse eenheden. Ruim voldoende voor een clips-pijplijn; batch-imports komen uit hetzelfde budget.

Storage (Cloudflare R2)

Elke S3-compatibele bucket werkt; R2 is het gedocumenteerde pad (het gratis tarief dekt een clipsbibliotheek). Vanuit de bucket downloaden Instagram, TikTok en X je video — YouTube en Facebook publiceren prima zonder.

  1. Open in het dashboard van Cloudflare R2 en maak een bucket aan — het paneel verwacht phoenix-clips-media, tenzij je het veld Bucket name aanpast.
  2. Geef hem een publiek domein: bucket → Settings → Public access → Custom domains (of om te beginnen het subdomein r2.dev). Dit is Public URL of the bucket — bestanden moeten zonder inloggen bereikbaar zijn.
  3. Maak credentials aan: R2 → Manage API tokens → Create API token, permissie Object Read & Write, beperkt tot deze bucket. Het resultaat is de Access key id en de Secret access key — het secret wordt één keer getoond.
  4. De Account id staat in de zijbalk van R2; het S3 endpoint is https://<account-id>.r2.cloudflarestorage.com.

Zes waarden in totaal — allemaal op Settings → This install → Storage.

Buffer (TikTok en X)

TikTok en X lopen via je eigen Buffer-account: hun directe API’s eisen app audits en betaalde abonnementen die voor een indie nergens op slaan. Phoenix stuurt de API van Buffer aan; Buffer houdt de logins van de platforms bij.

Het gratis plan is genoeg. Het gratis tarief van Buffer staat 3 gekoppelde kanalen toe — TikTok en X zijn er daar twee van, dus houd je er één over. Twee van de limieten zijn het weten waard, omdat het paneel ze bij naam noemt zodra ze toeslaan:

  • 10 ingeplande posts per kanaal tegelijk. Meteen publiceren raakt dit niet; alleen een wachtrij die tot tien wachtende posts is gegroeid. Ze komen weer vrij naarmate posts uitgaan.
  • 3000 API-verzoeken per maand. Comfortabel — de service ververst metrieken op een timer in plaats van te blijven pollen, en juist daarom zijn het interval van de metrieken en dat van de Buffer-poll instellingen en niet iets wat de service zelf beslist.

Betaalde plannen (vanaf $5/maand per kanaal) halen de plannings-limiet weg en voegen Buffers eigen analytics toe. Niets in Phoenix Clips heeft ze nodig.

  1. Koppel de TikTok- en X-accounts als kanalen binnen Buffer zelf.
  2. Maak een access token aan in de developer/API-instellingen van je Buffer-account en kopieer hem, samen met je organization id, naar Settings → This install → Buffer.
  3. Het tabblad Connections in het paneel koppelt elk platform daarna automatisch aan het bijbehorende Buffer-kanaal — de override-map bestaat alleen voor het zeldzame account met duplicaten.

AI-captions (Anthropic)

Optioneel. De knop Generate schrijft titels, captions en hashtags met Claude op basis van je eigen key, door Anthropic per gebruik gefactureerd — captions voor een clip kosten fracties van een cent.

  1. Meld je aan op console.anthropic.com, open API keys en maak er een aan.
  2. Plak hem in Settings → This install → AI captions. Toon, taal, basis-hashtags en de naam van de game staan ernaast.

Zonder key zegt de knop Generate dat hij niet geconfigureerd is; de rest maalt er niet om.

Beveiliging, kort

  • Secrets horen niet thuis in git, op screenshots, in logs of in supporttickets.
  • Het paneel maskeert opgeslagen secrets — het toont Set, nooit de waarde. Wat toch lekt, kun je intrekken en opnieuw uitgeven in de console waar het vandaan komt; het paneel neemt de vervanger in hetzelfde veld aan.
  • Geef alleen de scopes uit die op deze pagina staan. Niets hier heeft permissies nodig voor berichten, reactiemoderatie of advertenties.