DOCUMENTI/CANALI~ 12 MIN DI LETTURA

CAPITOLO 03 · CANALI

Connetti ogni canale
in un'unica casella.

Telegram, WhatsApp Cloud, Facebook Messenger e Instagram DM — cablati end-to-end. Ogni passo qui sotto è verificato contro le dashboard Meta e la Bot API di Telegram. Dove Meta chiama una cosa in un modo e noi in un altro, diciamo entrambi.

§ 00Cosa ti serve

Ogni canale richiede 5–20 minuti. Lavorerai in due posti: la console sviluppatore del canale (BotFather di Telegram, Meta Developer Dashboard) e la schermata Canali nel tuo workspace EasyLiveChat su app.livechattools.com/channels.

Tutti e quattro i canali condividono la stessa architettura in EasyLiveChat — una Conversation normalizzata per contatto, una casella, una box di risposta. Le differenze sono nelle credenziali richieste da ciascun provider e nel loro schema di firma webhook.

CONCETTI CONDIVISI

  • URL Webhook. EasyLiveChat ne genera uno per integrazione: https://api.livechattools.com/api/channels/webhook/{channel}/{integration-id}. Nome del canale in minuscolo. Incolli questo URL nella dashboard del provider.
  • Verify token. Il provider esegue un handshake GET una tantum verso il tuo URL webhook con questo token; restituiamo la sua challenge se combacia. EasyLiveChat lo auto-genera alla creazione dell'integrazione — apri Impostazioni integrazione.
  • App Secret (solo canali Meta). Meta firma ogni POST webhook con x-hub-signature-256 usando l'App Secret della Meta App — non il verify token. Lo incollerai una volta alla creazione dell'integrazione WhatsApp / Messenger / Instagram.

§ 01Telegram

Il canale più semplice da configurare. Telegram non ha bisogno di un'app sviluppatore né di un account business — solo di un bot. I token bot durano per sempre e l'intera integrazione richiede circa cinque minuti.

1. Crea un bot con BotFather

Apri Telegram e avvia una chat con @BotFather. Invia /newbot, scegli un nome visualizzato e uno username che termini con bot. . BotFather risponde con un token nella forma 1234567890:ABCdefGHI…. Copialo.

2. Connetti in EasyLiveChat

Nel tuo workspace vai a Canali → Bot Telegram → Connetti. Incolla il token del bot. Scegli un nome visualizzato — appare solo nella casella. Invia.

Apri Impostazioni integrazione sulla nuova riga per rivelare il Webhook secret e l'URL di callback dell'integrazione.

3. Punta Telegram al nostro webhook

La Bot API di Telegram non ha UI per i webhook; li imposti via setWebhook. Sostituisci i placeholder qui sotto con il tuo bot token, l'integration ID e il webhook secret, poi eseguilo una volta:

bashregistra webhook Telegram
curl -X POST "https://api.telegram.org/bot${BOT_TOKEN}/setWebhook" \
  -H "Content-Type: application/json" \
  -d '{
    "url": "https://api.livechattools.com/api/channels/webhook/telegram/${INTEGRATION_ID}",
    "secret_token": "${WEBHOOK_SECRET}",
    "allowed_updates": ["message", "edited_message"]
  }'

Telegram risponde {"ok":true,"description":"Webhook was set"}. . Verifica con getWebhookInfo— il pending_update_count dovrebbe scendere a 0.

4. Test

Apri t.me/yourbot_username in Telegram, tocca Avvia, invia un messaggio qualsiasi. Dovrebbe apparire nella tua casella EasyLiveChat in meno di un secondo con il nome del mittente e il codice lingua. Rispondi dal dashboard — arriverà sul Telegram del visitatore un attimo dopo.

§ 02WhatsApp Cloud

Meta Cloud API è la scelta giusta per quasi tutti — completamente ospitato, gratis fino a 1.000 service conversation al mese, e l'unico trasporto WhatsApp che non richiede infrastruttura dal tuo lato. La configurazione è più pesante di Telegram perché Meta richiede un'app sviluppatore e un business portfolio verificato per traffico di produzione.

1. Crea un'app sviluppatore Meta

Vai a developers.facebook.com/apps → Create App. Scegli un nome, un'email, poi nella schermata successiva seleziona il caso d'uso “Connect with customers through WhatsApp”. Collega un Business Portfolio — uno esistente o il Test Business integrato di Meta per la valutazione.

Dopo aver creato l'app, apri Use Cases → Connect on WhatsApp → API Setup. Vedrai un Phone Number ID (il numero di test gratuito fornito da Meta, o il tuo una volta aggiunto) e un pulsante Generate access token. Clicca, approva e copia il token risultante. Copia anche il Phone Number ID.

Durata del token. Il token del pulsante Generate è di breve durata (circa 24 ore). Per la produzione, crea un System User in Business Settings → Users → System Users, assegna il WhatsApp Business Account, e genera un token senza scadenza con i permessi whatsapp_business_messaging e whatsapp_business_management .

2. Prendi l'App Secret

Nella stessa dashboard Meta, apri App settings → Basic. L'App Secret è nascosto dietro un pulsante Show — rivela e copia. Questa è la chiave HMAC con cui Meta firma ogni POST webhook. Senza, i tuoi messaggi in ingresso saranno rifiutati come BAD_SIGNATURE.

3. Connetti WhatsApp in EasyLiveChat

Canali → WhatsApp Cloud → Connetti. Compila il nome visualizzato (libero), il Phone Number ID, l'Access Token e l'App Secret. Invia. Apri le impostazioni dell'integrazione per copiare il webhook secret auto-generato e l'integration ID.

4. Configura il webhook Meta

Tornato nella dashboard Meta, vai a Use Cases → Connect on WhatsApp → Configuration. Incolla:

configconfigurazione webhook WhatsApp in Meta
Callback URL : https://api.livechattools.com/api/channels/webhook/whatsapp/${INTEGRATION_ID}
Verify token : ${WEBHOOK_SECRET}

Clicca Verify and save. Meta invia un handshake GET — restituiamo la sua challenge se il verify token combacia. Nella stessa pagina, trova la lista Webhook fields e attiva messages su Subscribed. Senza questo toggle Meta accetta l'URL del webhook ma non consegna mai nulla.

5. Aggiungi un destinatario di test (solo sandbox)

Se usi il numero di test gratuito di Meta, devi inserire ogni destinatario in una allow-list prima di poter inviargli. In API Setup → To, aggiungi il numero da cui invierai messaggi — Meta invia un OTP a 6 cifre via SMS per verificare. Fino a cinque destinatari di test. I numeri business reali non hanno questa restrizione.

§ 03Facebook Messenger

Messenger usa la stessa Meta App, App Secret e idraulica webhook di WhatsApp — ma parla con una Pagina Facebook invece di un numero di telefono, e gli access token sono Page Access Token, non token WhatsApp Business.

1. Aggiungi Messenger alla tua app Meta

Nella stessa app usata per WhatsApp (o una nuova), apri Use cases → Add use cases → filtra Business messaging → Engage with customers on Messenger from Meta. Salva. L'app ora ha due prodotti affiancati.

2. Collega una Pagina Facebook

Apri Messenger from Meta → Messenger API Settings. Sotto Generate access tokens, clicca Connect accanto a No FB pages yet. Meta chiede a quali Pagine dare accesso — scegli quella su cui ricevere messaggi, accetta i permessi, salva.

La Pagina ora appare con un Page Access Token one-click e un Page ID. Copia entrambi. Il Page ID è anche il valore che incollerai come pageId in EasyLiveChat.

3. Connetti Messenger in EasyLiveChat

Canali → Messenger → Connetti. Compila Page ID, Page Access Token e lo stesso App Secret usato per WhatsApp. Invia e copia il webhook secret + ID della nuova integrazione.

4. Sottoscrizione webhook a due livelli

Messenger ha una stranezza che WhatsApp non ha: serve due sottoscrizioni per consegnare qualcosa. Prima la sottoscrizione a livello di app — in Messenger API Settings → Configure webhooks incolla:

configconfigurazione webhook a livello di app Messenger
Callback URL : https://api.livechattools.com/api/channels/webhook/messenger/${INTEGRATION_ID}
Verify token : ${WEBHOOK_SECRET}

Clicca Verify and save, poi espandi Webhook fields e attiva messages. Poi la sottoscrizione a livello di Pagina, che non puoi fare da UI — esegui questo curl:

bashsottoscrivi la Pagina all'app
curl -X POST "https://graph.facebook.com/v20.0/${PAGE_ID}/subscribed_apps" \
  -d "subscribed_fields=messages,messaging_postbacks,message_deliveries,message_reads" \
  -d "access_token=${PAGE_ACCESS_TOKEN}"

Senza la sottoscrizione a livello di Pagina, Meta restituisce {"success":true} sulla sottoscrizione di app ma non spara mai il webhook. Puoi confermare che tutto è cablato interrogando:

bashverifica entrambi i livelli di sottoscrizione
curl "https://graph.facebook.com/v20.0/${APP_ID}/subscriptions?access_token=${APP_ID}|${APP_SECRET}"

La risposta deve elencare un oggetto di tipo page con un array fields non vuoto che include messages.

§ 04Instagram DM

La messaggistica Instagram viaggia sulle stesse tubature Messenger Platform ma aggiunge due requisiti: l'account Instagram deve essere un account Business (non personale né Creator), e deve essere connesso a una Pagina Facebook nello stesso Business Portfolio. Quando entrambi sono veri, il tuo Page Access Token è anche il tuo access token Instagram.

1. Converti l'account IG a Business

Nell'app mobile Instagram: Impostazioni → Account → Passa a un account professionale → Azienda. Categoria qualsiasi. La conversione è reversibile.

2. Aggiungi l'account IG al tuo Business Portfolio

In Meta Business Suite Settings → Accounts → Instagram accounts → Add → accedi con le credenziali IG. Meta conferma e mostra l'Instagram Business Account ID dell'account IG — un numero di 17 cifre che inizia con 1784…. Copialo; questo è il tuo pageId per l'integrazione EasyLiveChat.

3. Collega IG alla Pagina Facebook

Questo è il passo più trascurato. Apri la casella della Pagina Facebook in Meta Business Suite — business.facebook.com/latest/inbox?asset_id={page_id}. Un banner dice “Connect to Instagram” con un pulsante Connect. Clicca, accedi a Instagram, concedi i permessi richiesti, conferma. Dopo questo la Graph API di Meta inizierà a rispondere alle domande sull'account IG nello scope dell'access token della Pagina.

4. Connetti Instagram in EasyLiveChat

Canali → Instagram DM → Connetti. Usa l'Instagram Business Account ID del passo 2 come pageId, lo stesso Page Access Token usato per Messenger come pageAccessToken, e lo stesso App Secret di prima.

5. Sottoscrivi a entrambi i livelli

Instagram usa object=instagram per i webhook a livello di app (Messenger usava object=page. ). Aggiungi questo curl in cima alla sottoscrizione Messenger esistente:

bashsottoscrivi l'app ai messaggi Instagram
curl -X POST "https://graph.facebook.com/v20.0/${APP_ID}/subscriptions" \
  -d "object=instagram" \
  -d "callback_url=https://api.livechattools.com/api/channels/webhook/instagram/${INTEGRATION_ID}" \
  -d "verify_token=${WEBHOOK_SECRET}" \
  -d "fields=messages,messaging_postbacks,message_reactions" \
  -d "access_token=${APP_ID}|${APP_SECRET}"
Regole di consegna in modalità sviluppo. Finché la tua app Meta non è pubblicata, Meta consegna eventi webhook Instagram solo da mittenti che sono app admin, developer o tester. I DM casuali da utenti reali vengono silenziosamente scartati. Per testare con qualcuno fuori dal team, aggiungilo come Tester in App Dashboard → Roles → Roles e fagli accettare l'invito. Per accettare qualsiasi mittente, devi pubblicare l'app via App Review.

§ 05Risoluzione problemi

401 · BAD_SIGNATURE

La firma POST di Meta non combacia. Quasi sicuramente hai incollato il valore sbagliato nel campo App Secret — deve essere l'App Secret della Meta App da App settings → Basic, non il verify token e non un Page Access Token. Apri Impostazioni integrazione in EasyLiveChat e verifica che il valore mascherato di App Secret sia 32 caratteri hex.

404 · UNKNOWN_CHANNEL

Il segmento di canale nell'URL non combacia con un adapter conosciuto. Mettilo in minuscolo ( /whatsapp/ non /WHATSAPP/) — anche se la route è case-insensitive, alcuni intermediari normalizzano diversamente.

handshake passa, ma non arrivano messaggi

Per i canali Meta, lancia il check sottoscrizioni sopra. Se l'oggetto rilevante (page o instagram o whatsapp_business_account) ha un array fields vuoto, l'app è registrata ma non sottoscritta ad alcun evento — ri-attiva messages nella lista Webhook fields.

access token scaduto (Meta)

I token dal pulsante Generate access token nella dashboard Meta o da Graph API Explorer durano circa 24 ore. Per qualsiasi cosa oltre una demo, provisiona un System User e genera un token senza scadenza con i permessi giusti di Page o WhatsApp Business Account.

Telegram non consegna nulla

Lancia getWebhookInfo — la risposta include un campo last_error_message. Valori comuni: “404 Not Found” (integration ID sbagliato nell'URL), “SSL handshake failed” (problema di proxy / certificato).

Questo articolo è stato utile?

Suggerisci una modifica ↗