ContentFlows/Documentazione

Risoluzione dei problemi e guide token

Istruzioni passo per passo per collegare LinkedIn, Facebook, Instagram e YouTube a ContentFlows. Ogni piattaforma richiede due valori: un token di accesso (ciò che concede l'autorizzazione) e un ID (l'account / pagina / canale su cui pubblicare). Entrambi vengono incollati nella tua dashboard.

Come vengono memorizzate le credenziali

I valori di tutte e quattro le piattaforme vengono salvati come un unico blob JSON cifrato in AWS Secrets Manager all'indirizzo contentflows/tenants/YOUR_TENANT_ID/social-tokens. I secret non vengono mai registrati, non vengono mai mostrati di nuovo dopo il salvataggio e sono isolati sul tuo account. ContentFlows non memorizza mai la tua password dei social media.


LinkedIn

ContentFlows usa l'API LinkedIn UGC Posts per pubblicare per tuo conto. Ti serve un token di accesso con lo scope di autorizzazione w_member_social, più l<i>member URN</i> dellaccount sotto cui dovrebbero apparire i post.

Campi che ContentFlows ti chiederà

LINKEDIN_ACCESS_TOKEN
Token di accesso OAuth 2.0 (durata 60 giorni). Inizia con AQV… o simile.
LINKEDIN_AUTHOR_ID
Member URN — ha l'aspetto di urn:li:person:XXXXXXXXXX oppure urn:li:organization:NNNNNN per una Company Page.

Prerequisiti

  • Un account LinkedIn (profilo personale) — i post verranno pubblicati da questo account
  • Un account sviluppatore LinkedIn gratuito — lo crei automaticamente quando crei un'app

Passo per passo

1

Vai al LinkedIn Developer Portal

Apri linkedin.com/developers/apps e accedi. Fai clic su Create app.
2

Compila i dettagli dell'app

  • App name: qualsiasi cosa — ad esempio “ContentFlows Publisher”
  • LinkedIn page: devi collegare una LinkedIn Company Page. Se non ne hai una, creane prima una base (gratuita).
  • App logo: carica qualsiasi immagine quadrata
Fai clic su Create app.
3

Richiedi il prodotto 'Share on LinkedIn'

Nella pagina dell'app, fai clic sulla scheda Products. Trova Share on LinkedIn e fai clic su Request access. Di solito viene approvato all'istante.
4

Aggiungi il tuo redirect URI

Vai alla scheda Auth. Sotto OAuth 2.0 settings, aggiungi questo URL di redirect:
https://www.linkedin.com/developers/tools/oauth/redirect
Fai clic su Update.
5

Genera il token di accesso

Vai su linkedin.com/developers/tools/oauth/token-generator. Seleziona la tua app, spunta w_member_social (e r_liteprofile se disponibile), fai clic su Request access token, fai clic su Allow. Copia il token — non verrà mostrato di nuovo. Questo è il tuo LINKEDIN_ACCESS_TOKEN.
6

Trova il tuo Member URN

Nello stesso strumento token-generator, usa il tester API incluso:
GET https://api.linkedin.com/v2/userinfo
La risposta contiene sub — prefissalo con urn:li:person: per formare il tuo URN. Ad esempio, se sub = "ABC123xyz", il tuo URN è urn:li:person:ABC123xyz. Questo è il tuo LINKEDIN_AUTHOR_ID.
Suggerimento: Per pubblicare da una LinkedIn Company Page invece che dal tuo profilo personale, usa urn:li:organization:COMPANY_PAGE_NUMERIC_ID — l'ID numerico è visibile nell'URL di amministrazione della Page.
7

Incolla entrambi i valori in ContentFlows

Nella tua dashboard, vai su Integrations → LinkedIn. Incolla il token di accesso nel campo Access token e l'URN nel campo Member URN, quindi fai clic su Save.
Nota: I token di accesso LinkedIn scadono dopo 60 days. Ripeti i passaggi 5 e 7 ogni due mesi (l'URN non cambia mai). Imposta un promemoria sul calendario.

Facebook

ContentFlows pubblica su una Facebook Page (non su un profilo personale). Ti serve un Page access token con il permesso pages_manage_posts, più il Page ID numerico.

Campi che ContentFlows ti chiederà

FB_PAGE_ACCESS_TOKEN
Token di accesso Page long-lived (60 giorni) da Meta for Developers.
FB_PAGE_ID
L'ID numerico della Facebook Page che gestisci (ad esempio 123456789012345).

Prerequisiti

  • Un account Facebook che sia Admin di una Facebook Page
  • Se non hai ancora una Facebook Page, creane una su facebook.com/pages/create (gratuita, richiede 2 minuti)

Passo per passo

1

Apri il portale Meta for Developers

Vai su developers.facebook.com/apps e accedi. Fai clic su Create App.
2

Seleziona il tipo di app e compila i dettagli

Scegli Business come tipo di app. Compila il nome dell'app, l'email di contatto e fai clic su Create App.
3

Aggiungi il prodotto Facebook Login

Nella dashboard, trova Facebook Login nell'elenco dei prodotti e fai clic su Set up. Non serve alcuna configurazione aggiuntiva.
4

Ottieni un token utente dal Graph API Explorer

Apri il Graph API Explorer:
  • Nel menu a discesa in alto a destra, seleziona la tua app
  • Fai clic su Generate Access Token
  • Nel popup delle autorizzazioni, seleziona tutte queste:
    • pages_manage_postsrichiesto per pubblicare i post (lo scope che manca più spesso)
    • pages_read_engagement
    • pages_show_list
    • business_management
    • instagram_basic — solo se prevedi di riutilizzare questo token per Instagram
    • instagram_content_publish — solo se prevedi di riutilizzare questo token per Instagram
  • Fai clic su Generate Access Token e autorizza
Questo ti fornisce un User access token a breve durata (valido per circa 2 ore). I passaggi 5–6 lo convertono in un token di accesso Page che non scade.
5

Estendi il token utente a long-lived (60 giorni)

Incolla il token utente nell<a>Access Token Debugger</a>, fai clic su <b>Debug</b>, quindi fai clic su <b>Extend Access Token</b> in basso. Ottieni un nuovo token utente valido per circa 60 giorni. Usa questo token esteso nel passaggio successivo.
6

Ricava il token di accesso Page E il Page ID

Torna al Graph API Explorer, incolla il token utente long-lived del passaggio 5 nel campo Access Token, quindi esegui:
GET /me/accountsSubmit
Nella risposta JSON, trova la tua Page. Ha due campi importanti:
  • access_token → questo è il tuo FB_PAGE_ACCESS_TOKEN — poiché lo hai derivato da un token utente long-lived, questo Page token non scade mai
  • id → questo è il tuo FB_PAGE_ID
Copia entrambi i valori.
7

Incolla entrambi i valori in ContentFlows

Nella tua dashboard, vai su Integrations → Facebook. Incolla il token Page nel campo Page access token e l'ID numerico della Page nel campo Page ID, quindi fai clic su Save.
8

Verifica che il token abbia gli scope corretti (opzionale ma consigliato)

Incolla il nuovo token Page nell<a>Access Token Debugger</a> e controlla:
  • Type: PAGE (non USER — se indica USER, nel passaggio 6 hai copiato il token sbagliato)
  • Expires: Never (se mostra una data, hai saltato il passaggio 5 — il token utente era ancora a breve durata quando hai chiamato /me/accounts)
  • Scopes: deve includere pages_manage_posts. Se manca, non hai selezionato quella casella nel passaggio 4 — ricomincia dal passaggio 4.
Suggerimento: Causa comune di 403: Se i post pianificati falliscono con {"error":{"message":"(#200) Permissions error"}}, il token quasi sempre non include pages_manage_posts. Verifica con il debugger (passaggio 8) e rigenera se necessario.

Instagram

La pubblicazione su Instagram usa la Facebook Graph API, quindi il tuo account Instagram deve essere un account Professional (Business o Creator) collegato a una Facebook Page. Gli account Instagram personali non possono pubblicare via API.

Campi che ContentFlows ti chiederà

IG_ACCESS_TOKEN
Opzionale — lascia vuoto e ContentFlows utilizzerà FB_PAGE_ACCESS_TOKEN come fallback. Compilalo solo se hai un token Instagram dedicato.
IG_BUSINESS_ACCOUNT_ID
L'ID Instagram Business Account collegato alla tua Facebook Page (ad esempio 17841412345678901).

Prerequisiti

  • Un account Instagram Business o Creator (non un account personale)
  • Quell'account Instagram collegato a una Facebook Page che gestisci
  • Un'app sviluppatore Meta con il permesso instagram_content_publish

Converti a un account Professional (se necessario)

1

Cambia il tipo di account nell'app Instagram

Sul telefono, vai al profilo Instagram → tocca il menu ☰ → SettingsAccountSwitch to Professional Account. Scegli Business o Creator.
2

Collega Instagram alla tua Facebook Page

Sempre nelle impostazioni di Instagram, vai su AccountLinked AccountsFacebook. Accedi e seleziona la tua Page.

Ottieni l'Instagram Business Account ID

3

Apri il Graph API Explorer

Vai su developers.facebook.com/tools/explorer. Seleziona la tua app e genera un token con questi permessi:
instagram_basic, instagram_content_publish, pages_read_engagement, pages_manage_posts
4

Trova il tuo Instagram Business Account ID

Esegui GET /me/accounts. Trova la tua Page e copia il suo id. Quindi esegui:
GET /{page-id}?fields=instagram_business_account
(sostituisci {page-id} con il tuo Page ID). La risposta contiene un oggetto instagram_business_account — copia il suo id. Questo è il tuo IG_BUSINESS_ACCOUNT_ID.
5

Incolla i valori in ContentFlows

Nella tua dashboard, vai su Integrations → Instagram. Incolla l'IG Business Account ID in Business Account ID. Lascia vuoto il campo Access token per riutilizzare il token della Facebook Page che hai già configurato — è il percorso più semplice ed è quello che fa la maggior parte delle persone. Fai clic su Save.
Nota: Se hai già salvato Facebook, il token di accesso di Instagram usa per impostazione predefinita il token della Page Facebook. Devi fornire solo IG_BUSINESS_ACCOUNT_ID.

YouTube

ContentFlows usa la YouTube Data API v3 per generare metadati video (titoli, descrizioni, tag) per il tuo calendario dei contenuti. Ti serve una chiave API da Google Cloud Console e l'ID del tuo canale.

Campi che ContentFlows ti chiederà

YOUTUBE_API_KEY
Chiave API Google Cloud con YouTube Data API v3 abilitata. Inizia con AIza…
YOUTUBE_CHANNEL_ID
L'ID del tuo canale YouTube (ad esempio UCxxxxxxxxxxxxxxxxxxxxxx). Lo trovi in YouTube Studio → Settings → Channel → Advanced settings.

Prerequisiti

  • Un account Google
  • Un canale YouTube collegato a quell'account
  • Un progetto Google Cloud gratuito (lo crei durante il primo passaggio)

Passo per passo

1

Crea un progetto Google Cloud

Vai su console.cloud.google.com/projectcreate, assegna al progetto qualsiasi nome (ad esempio “ContentFlows”) e fai clic su Create.
2

Abilita la YouTube Data API v3

Con il nuovo progetto selezionato, vai su YouTube Data API v3 e fai clic su Enable.
3

Crea una chiave API

Vai su APIs & Services → Credentials. Fai clic su + Create credentials → API key. Copia la chiave — questa è la tua YOUTUBE_API_KEY.
Suggerimento: Fai clic su Restrict key e limitane l'uso alla YouTube Data API v3 per sicurezza.
4

Trova il tuo YouTube Channel ID

Vai su YouTube StudioSettings (icona a ingranaggio in basso a sinistra) → ChannelAdvanced settings. Il tuo Channel ID è elencato lì — copialo. Inizia con UC. Questo è il tuo YOUTUBE_CHANNEL_ID.
5

Incolla entrambi i valori in ContentFlows

Nella tua dashboard, vai su Integrations → YouTube. Incolla la chiave API in API key e l'ID del canale in Channel ID, quindi fai clic su Save.
Nota: La chiave API è in sola lettura — genera metadati ma NON carica video. Il caricamento richiede ancora OAuth, che oggi non fa parte del flusso di onboarding.


Dominio di invio (DKIM / SPF / DMARC)

Per impostazione predefinita le newsletter partono da noreply@contentflows.cc. Autenticare il tuo dominio migliora la deliverability (meno finiture nella cartella spam) perché l'indirizzo From corrisponde alle firme DKIM e al brand visibile.

Prerequisiti

  • Possiedi un dominio (ad esempio your-business.com).
  • Puoi creare record DNS presso il tuo registrar (Cloudflare, Route53, GoDaddy, Namecheap, ecc.).

Passo per passo

1

Avvia il flusso

Nella tua dashboard, apri Brand → trova la card Sending domain in basso → digita il tuo dominio (ad esempio your-business.com) → fai clic su Save & show DNS records.
2

Copia i 5 record DNS

La card ora mostra 5 record:
  • 3 × CNAME (token DKIM)
  • 1 × TXT sul dominio radice (SPF)
  • 1 × TXT su _dmarc.your-domain.com (DMARC)
Usa il pulsante Copy accanto a ciascuna riga per prenderli uno alla volta.
3

Incolla nel tuo provider DNS

Accedi al tuo host DNS, crea ciascun record con l'host/nome e il valore esatti come mostrato. Per i CNAME, non aggiungere il tuo dominio come suffisso — l'host mostrato è il nome completo (ad esempio abc123._domainkey.your-domain.com).
Suggerimento: Utenti Cloudflare: disattivate la nuvola arancione (proxy) sui CNAME DKIM — SES ha bisogno del record grezzo.
4

Verifica

Tornando alla dashboard, fai clic su I added the records — Verify. La card interroga SES ogni 15 secondi per un massimo di 10 minuti. La propagazione DNS globale di solito richiede meno di 2 minuti, ma alcuni provider impiegano più tempo.
5

Fatto

Una volta verificato, tutte le newsletter del tuo tenant useranno newsletter@your-domain.com come intestazione From, con firme DKIM, SPF pass e allineamento DMARC.
Nota: Puoi rimuovere il dominio in qualsiasi momento dalla stessa card — le email torneranno quindi al mittente condiviso noreply@contentflows.cc.

Importazione degli iscritti

Il pulsante + Import della scheda Newsletter apre una modale con tre tab:

Upload CSV

Carica un file .csv. La riga di intestazione viene rilevata automaticamente (qualsiasi colonna il cui nome contiene email viene trattata come colonna email; qualsiasi colonna con name o first viene trattata come nome). Gli indirizzi email non validi vengono rifiutati; i duplicati vengono ignorati. Spunta la casella di consenso prima che Import si abiliti.

Mailchimp

Incolla la tua chiave API Mailchimp (formato: abc123...-us21 — la parte dopo l'ultimo trattino è il data center) e l'Audience ID (dashboard Mailchimp Audience → Settings → Audience name and defaults → Audience ID). ContentFlows recupera tutti i membri iscritti.

ConvertKit

Incolla la tua chiave API ConvertKit (Settings → Advanced → API Key). Vengono importati tutti gli iscritti confermati.

Problemi comuni

  • Mailchimp 401 Unauthorized — la chiave API è errata oppure l'account l'ha disabilitata. Rigenerala in Mailchimp → Account → Extras → API keys.
  • “Nessun indirizzo email valido” — il parser CSV non ha rilevato una colonna email. Verifica che ci sia una riga di intestazione e una colonna chiamata letteralmente email.
  • L'importazione termina all'istante con 0 aggiunti — ogni riga era già nella tua lista. È normale nei riesecuzioni.

Problemi comuni

Il token non è valido o è scaduto

I token di accesso scadono. I token LinkedIn durano circa 60 giorni. I token Page Facebook/Instagram non scadono mai quando derivano da un token utente long-lived (segui esattamente i passaggi nella sezione Facebook). Genera un nuovo token e aggiornalo in Integrations.

Facebook: (#200) Permissions error alla pubblicazione

Di gran lunga la causa più comune: il token della Page non include lo scope pages_manage_posts. Questo scope è facile da dimenticare nel popup delle autorizzazioni perché Graph API Explorer non lo abilita per impostazione predefinita. Verifica il token nell<a>Access Token Debugger</a> — se <code>pages_manage_posts</code> non è nellelenco degli scope, rigenera il token partendo dal Passaggio 4 della guida Facebook e spunta esplicitamente quel permesso.

LinkedIn: URN non valido

Il Member URN deve iniziare con urn:li:person: (per i profili personali) o urn:li:organization: (per le Company Page) seguito dall'ID univoco dell'account. Una semplice stringa numerica o alfanumerica, da sola, non è un URN valido.

Permessi insufficienti su LinkedIn

La tua app LinkedIn non ha il prodotto Share on LinkedIn approvato, oppure il token è stato generato senza w_member_social. Torna al passaggio 3 della guida LinkedIn, quindi rigenera il token.

Facebook: Page ID errato

Il Page ID è il campo numerico id di /me/accounts, NON il nome utente leggibile nell'URL della Page. Se incolli per errore il nome utente, i post falliranno.

Devi essere admin della Facebook Page

L'account Facebook che ha generato il token non è un Admin della Page di destinazione. Chiedi all'admin della Page di generare lui stesso il token, oppure fatti aggiungere come Admin su facebook.com → Page settings → Page roles.

Instagram: non è un account Business o Creator

Gli account Instagram personali non possono usare la Content Publishing API. Segui i passaggi di conversione sopra.

Instagram: account non collegato a una Facebook Page

Il tuo account Instagram Professional non è collegato a una Facebook Page. Vai su Instagram Settings → Account → Linked Accounts → Facebook e completa il collegamento.

YouTube: quota API superata

YouTube Data API ha una quota predefinita di 10,000 units/day, più che sufficiente per le ricerche di metadati di ContentFlows. Se raggiungi il limite, è probabile che la stessa chiave API venga usata altrove — crea una chiave dedicata per ContentFlows.


Ancora bloccato?

Contatta il supporto con il messaggio di errore e la piattaforma che stai collegando. Includi il numero del passaggio in cui ti sei bloccato.

Correlati