Come costruire un bot WhatsApp per elenchi di cose da fare utilizzando l'API di Conversazioni Programmabili di Bird.
Uccello
5 feb 2020
1 min read

Conclusioni principali
Bird’s Programmable Conversations API unifica WhatsApp, Messenger e SMS in un unico strato di comunicazione, semplificando lo sviluppo di bot multi-canale.
Puoi rapidamente prototipare un bot per liste di cose da fare su WhatsApp utilizzando webhooks e semplici richieste POST.
Strumenti come ngrok ti permettono di esporre il tuo server locale per testare i webhook senza configurazioni di hosting complesse.
L'API gestisce conversazioni su più canali, consentendo una base logica unica per WhatsApp, WeChat e altre app.
Utilizza l'endpoint archiveConversation per chiudere conversazioni o "argomenti", ideale per il supporto o il monitoraggio del flusso di lavoro.
La logica del bot può gestire conversazioni concorrenti in modo sicuro in memoria con una semplice struttura dati.
Lo stesso gestore di webhook funziona su più canali—Bird instrada automaticamente le risposte in base all'ID della conversazione di origine.
Q&A Highlights
Quanto è difficile creare un bot WhatsApp utilizzando l’API di Bird?
È sorprendentemente facile. Con un webhook e alcune chiamate API, puoi creare un bot funzionale che legge e risponde ai messaggi in pochi minuti.
Ho bisogno di una configurazione speciale per ricevere messaggi?
Sì — il bot deve essere raggiungibile da Internet. Strumenti come ngrok aiutano a creare un tunnel sicuro dalla tua macchina locale.
Posso utilizzare lo stesso codice sorgente per diverse app di messaggistica?
Assolutamente. L'API Conversations astrae i canali, quindi il tuo bot può funzionare su WhatsApp, WeChat o Messenger utilizzando la stessa logica.
Come faccio a chiudere o resettare un thread di chat?
Invia una richiesta PATCH all'endpoint della conversazione con lo stato corretto per archiviarla. Qualsiasi nuovo messaggio apre automaticamente una nuova conversazione.
Dove posso trovare un esempio di codice?
A: La dimostrazione completa funzionante — Wabot su GitHub — mostra l'implementazione della gestione dei messaggi, della concorrenza e dell'archiviazione.
Bird ha recentemente lanciato Conversazioni Programmabili. Consente alle aziende di integrare piattaforme di comunicazione come WhatsApp, Messenger e SMS nei loro sistemi - utilizzando una sola API.
Bird ha recentemente lanciato Programmable Conversations. Permette alle aziende di integrare piattaforme di comunicazione come WhatsApp, Messenger e SMS nei loro sistemi — usando un'unica API.
Volevo provarlo, quindi ho creato un bot to-do list su WhatsApp, perché chi non ha bisogno di una lista automatizzata per organizzare la propria giornata? Potrebbe sembrare complicato, ma in realtà è stato facile, e vorrei raccontarvi tutto al riguardo.
Ora, io lavoro a MessageBird, quindi posso semplicemente iniziare a costruire. Se ci provate voi, avrete bisogno di richiedere l'accesso anticipato. Ma una volta che avete configurato un canale WhatsApp, potete accedere al Dashboard sul sito web di MessageBird e iniziare.
La prima cosa che ho fatto è stata leggere i documenti. Ho appreso che, per ricevere messaggi dal bot, dovrei utilizzare un webhook. Questo significava che il mio bot avrebbe dovuto essere accessibile da Internet. Quando si costruiscono API come questa, è importante seguire le best practice per il versionamento delle API per la manutenibilità. Poiché stavo appena iniziando a codificarlo, ho deciso di usare ngrok. Crea un tunnel dall'internet pubblico al tuo caro localhost sulla porta 5007. All'opera!
ngrok http 5007 -region eu -subdomain todobot
Successivamente, ho dovuto fare una chiamata alla Programmable Conversations API per creare il webhook. È un POST a https://conversations.messagebird.com/v1/webhooks e appare così:
Perfetto. Ora la Conversations API farà una richiesta POST a:
https://todobot.eu.ngrok.io/create-hook ogni volta che un nuovo messaggio viene creato sul canale WhatsApp che hai configurato in precedenza.
Questo è l'aspetto di un payload del webhook:
Vogliamo rispondere a quei messaggi. Cominciamo a ripeterli, che ne dite?
Ora, per la parte interessante. Fai una richiesta POST a:
https://conversations.messagebird.com/v1/conversations/<conversationID>/messages per rispondere alla richiesta.
Ecco. Questo è tutto ciò che serve per creare un bot che si comporti come un umano di 5 anni.
Ora, facciamo un passo avanti per costruire l'intera lista di cose da fare. Prima, modifica la funzione createHookHandler in modo che chiami la nuova funzione handleMessage invece di respond.
handle parserà in modo semplicistico i messaggi, farà un po’ di lavoro e sceglierà la risposta. Diamo un'occhiata al comando “add”:
Qui, abbiamo configurato:list := manager.fetch(whp.Conversation.ID). In pratica, “manager” è una mappa sicura concorrente che mappa gli ID delle conversazioni alle liste di cose da fare.
Una lista di cose da fare è una slice di stringa sicura concorrente. Tutto in memoria!
Un'altra cosa importante! Puoi archiviare le conversazioni. In alcune applicazioni, come i CRM, è importante tenere traccia di certe interazioni — per monitorare l'efficacia dei dipendenti dell'assistenza clienti, ad esempio. L'Conversations API ti permette di archiviare una conversazione per “chiudere” l’argomento. Se l'utente/il cliente invia un altro messaggio, l'Conversations API aprirà automaticamente un nuovo argomento.
Inoltre. Fare una richiesta PATCH a https://conversations.messagebird.com/v1/conversations/{id} con lo stato corretto nel corpo ti consente di archiviare la conversazione con quell'id. Lo facciamo con il comando “bye”:
archiveConversation farà la richiesta PATCH e manager.close(whp.Conversation.ID) rimuoverà la conversazione dalla lista di cose da fare.
Ma ehi, Programmable Conversations è una soluzione omni-canale. E se volessi riutilizzare il codice del bot per una piattaforma diversa, come WeChat? Questo approccio multi-canale è parte della strategia di deviare le richieste verso canali a minor costo. Come lo faresti?
Basta creare un nuovo webhook per quel canale! Un webhook che invia richieste allo stesso url https://todobot.eu.ngrok.io/create-hook che abbiamo usato per WhatsApp!
Funzionerà perché il codice del gestore utilizza sempre il conversationID dal payload del webhook per rispondere ai messaggi invece di un channelID codificato. L'API Conversations di MessageBird determinerà automaticamente il canale per la conversazione a cui inviare il tuo messaggio.
Vuoi creare il tuo bot? Dai un'occhiata al codice completo su Github: Wabot su Github, richiedi l'accesso anticipato a WhatsApp visitando la pagina WhatsApp e cliccando sul pulsante Contatta Vendite per compilare il modulo. Buon botting!



