Quando si parla di chatbot ci vengono subito in mente le problematiche relative alla comprensione del linguaggio e alla scrittura, e si lascia in secondo piano quello che è il suo aspetto strutturale: come lo scrivo e dove lo eseguo? Ecco come realizzare un chatbot per Facebook Messenger
Il discorso varia per ogni piattaforma eccetto per una costante: i chatbot sono applicazioni web che accettano richieste https.
Questo significa che è possibile utilizzare qualsiasi linguaggio per il web e qualsiasi hosting a patto che vi si possa installare un certificato SSL.
La parte di creazione e configurazione del server non sarà oggetto di questo articolo ma è possibile approfondire i concetti su SSL all’indirizzo https://letsencrypt.org/
Una volta scelto l’hosting si può passare alle configurazioni specifiche per la piattaforma scelta, in questo caso Facebook Messenger.
Installare un chatbot su Facebook Messenger
Per realizzare un chatbot su Messenger è necessario un account Facebook, per la creazione dell’applicazione e per la gestione della pagina su cui girerà il chatbot.
Per semplificare la realizzazione si può dividere il progetto in tre elementi distinti che vanno poi allacciati fra loro, in questo post affronteremo i primi due, la Pagina Facebook e l’Applicazione.
Pagina Facebook
E’ l’unica entità che può fungere da interfaccia per la ricezione è l’invio dei messaggi. La si può costruire in pochi passi:
Clicca su crea pagina > Scegli il nome pagina > Assegna foto e immagine di copertina
Una volta creata si può passare alla costruzione del secondo elemento.
Applicazione Facebook
Tutto quello che passa per l’ambiente Facebook deve essere approvato e tracciato, pertanto è stato realizzato un sistema di applicazioni su cui si possono richiedere specifici permessi per leggere e manipolare le risorse.
Per accedere al pannello di gestione applicazioni, bisogna registrarsi come sviluppatore Facebook utilizzando il proprio account.
Dal sito https://developers.facebook.com si possono consultare le applicazioni create e realizzarne di nuove, per fare ciò dalla barra in alto si deve aprire il menù “Le mie app” posizionandoci sopra il mouse e selezionare la voce “Aggiungi una nuova app”.
Dopo aver assegnato un nome e aver accettato i termini del servizio, sarà possibile configurare l’applicazione.
Facebook mette a disposizione un gran numero di prodotti con cui è possibile interagire attraverso la propria applicazione. Per iniziare bisogna aggiungere Messenger dalla pagina di selezione prodotto.
Una volta selezionato il prodotto si viene rimandati alla sua pagina, in cui è presente anche un re-indirizzamento alla documentazione relativa.
Il primo elemento necessario per poter utilizzare la pagina precedentemente creata è una chiave d’accesso. Questa può essere generata tramite le API fornite da Facebook, utile in quei casi in cui non si è amministratori di pagina, o più comodamente utilizzando l’elemento presente in pagina.
Dopo aver scelto la pagina, l’applicazione chiederà di autorizzarla alla gestione della stessa; successivamente genererà una chiave permanente che al suo interno contiene informazioni su applicazione, pagina e permessi in un formato crittografato dai sistemi Facebook. Data questa struttura, ogni cambio di permessi richiede la rigenerazione della chiave per abilitare eventuali nuove funzionalità o rimuoverne di precedenti.
Il secondo elemento da definire è il webhook. Questo non è altro che un url a cui verranno inviati tutti i messaggi in entrata alla pagina Facebook registrata con l’applicazione. Prima di procedere alla definizione del webhook è necessario iniziare a scrivere una prima parte di programma che permetta di rispondere alla richiesta di configurazione da parte dell’applicazione.
LEGGI ANCHE: Perché la tua azienda ha bisogno di un assistente virtuale
Sul server va creato un file .php contenente il seguente codice:
[php] <?php if ( isset( $_REQUEST[‘hub_challenge’] ) && $_REQUEST[‘hub_verify_token’] === ‘token_di_configurazione’ ) { echo $_REQUEST[‘hub_challenge’]; } else { // Corpo del bot } ?>[/php]
In fase di creazione del webhook, e successivamente come verifica dello stato dello stesso, Facebook invia una richiesta all’indirizzo indicato inviando due parametri:
– hub_challenge, il valore che Facebook si aspetta di trovare nel corpo della risposta alla chiamata; va prestata molta attenzione a non dare altri output oltre a quello atteso, quindi attenzione a eventuali log o eccezioni non catturate
– hub_verify_token, una stringa a scelta del creatore del webhook che serve da parametro di controllo per evitare richieste malevole e che nell’esempio è valorizzata a token_di_configurazione
Supponendo che il dominio su cui si trova lo script sia http://www.mybot.com e che il nome del file sia bot.php, la configurazione del webhook avviene cliccando sul pulsante configura webhook. Qui va inserito l’url con il percorso al file, ricordandosi che è accettato solo il protocollo https ( https://www.mybot.com/bot.php ), e vanno selezionate le tipologie di messaggi che si vuole gestire.
Fra le varie tipologie di messaggi, quelli che sono essenziali sono messages e messages_postback che identificano la ricezione dei classici messaggi utilizzati da un utente ( testo, immagini, video ) e la ricezione di messaggi in seguito alla pressione di un pulsante, cosa che può avvenire con la definizione dei messaggi con template, che verranno analizzati in seguito. Altre tipologie di messaggio possono essere considerate come feedback a particolari eventi come la ricezione di messaggi da parte dell’utente o la loro lettura.
Per approfondimenti a riguardo si consiglia la lettura della documentazione ufficiale: https://developers.facebook.com/docs/messenger-platform/webhook#setup
Se le informazioni inserite sono corrette la finestra si chiude e il chatbot è pronto a rispondere alle richieste degli utenti. Va però definito come deve rispondere. Affronteremo questa parte in un post successivo.