9 Aprile, 2018 | Di

Come creare un chatbot per Facebook Messenger (Parte 1)

Come creare un chatbot per Facebook Messenger (Parte 1)

L’intelligenza artificiale si fa largo come punto di raccordo tra chi offre servizi e le richieste degli utenti. In questo campo, recentemente si è fatto avanti un nuovo tool disponibile per tutte le pagine Facebook: il chatbot.

Cos'è un chatbot

Un chatbot può essere definito un assistente virtuale basato su di un’intelligenza artificiale in grado di conversare con gli utenti e raccogliere informazioni.

Tra i chatbot in circolazione, molto probabilmente, conosci Siri, l’assistente virtuale per iOS, o Google Now, utilizzato per smartphone e tablet Android. Su Windows 10 ha debuttato un altro chatbot: Cortana.

Fanno parte dei chatbot anche le chat automatiche su app di messaggistica istantanea e gli strumenti di interazione implementati via social network.

I tipi di chatbot

Ci sono due tipi di chatbot, quelli che funzionano in base a delle regole ben precise e quelli che utilizzano tecnologie di intelligenza artificiale, più precisamente di machine learning, tramite le quali il programma impara un compito senza essere stato specificamente programmato per eseguirlo.

I chatbot definiti in base a regole sono generalmente limitati: rispondono a comandi specifici definiti in fase di sviluppo e per questo possono anche non capire quello che l’utente dice o chiede.

I chatbot che adottano sistemi di machine learning, invece, sono più flessibili: non capiscono soltanto i comandi programmati, ma comprendono il linguaggio umano. Si tratta di chatbot che apprendono dalla conversazione. Ad esempio: se durante una conversazione l'utente fa una domanda di cui il chatbot non conosce la risposta, l'intelligenza artificiale segnalerà che non è in grado di processare la domanda e dare una risposta ma, in background, andrà ad apprendere la domanda fatta in modo da essere in grado di rispondere in un secondo momento, grazie al sistema di machine learning.

Come si possono utilizzare i chatbot

Questa tecnologia ha permesso a molte aziende di potersi reinventare e di fornire ai propri clienti un servizio utile per comunicare i propri bisogni.

Attualmente i bot vengono utilizzati dalle grandi/medie aziende per dare assistenza al cliente o per rispondere a delle FAQ. Grazie a questo investimento, un’azienda può risparmiare sui costi del personale e fornire un servizio nuovo ai propri clienti.

Si può anche utilizzare questa tecnologia per raccogliere informazioni e dati, da utilizzare successivamente in campagne marketing e newsletter.

Come creare un chatbot che funzioni tramite Messenger di Facebook

Cosa farà il chatbot?

Il chatbot che adesso programmeremo simulerà una conversazione tra un utente e l'assistente virtuale. La conversazione sarà la seguente:

TUHi BOTWelcome to Wellnet! How can I help you? BOT:MENU DI NAVIGAZIONE Where we are | Contact | Want a quote? TU: 1 → redirect alla mappa di Google con la nostra posizione 2 → redirect alla pagina contatti 3 → redirect alla pagina contatti

Requisiti per poter iniziare

Per creare la nostra prima chatbot ci sono 3 requisiti da rispettare:

  • Essere amministratori di una Pagina Facebook
  • Creare un APP Facebook associata alla pagina
  • utilizzare PHP 7

Se non sei ancora amministratore di una pagina, prima di tutto devi crearne una. Vai sul tool Facebook per la creazione di pagine, clicca sulla categoria che ti riguarda, procedi con l’inserimento dei dati richiesti e clicca su "Invia".

Come creare un chatbot per Facebook Messenger (Parte 1)

Creiamo ora l’APP di Facebook associata alla tua pagina, quest’ultima sarà necessaria per la creazione delle API KEY da utilizzare all’interno del nostro sistema. Spostati alla pagina di Facebook dedicata ai developer di app e inserisci i dati richiesti. Clicca su Crea ID APP nella pagina in visione e aggiungi il prodotto Messenger. Procedi poi con la sua configurazione.

Adesso è arrivato il momento di scrivere il tuo primo chatbot. Puoi utilizzare diversi linguaggi di programmazione tra cui node js, php etc. In questa guida utilizzeremo PHP con il supporto del framework Botman, installato tramite Composer.

Crea la cartella che conterrà l’intero chatbot (questo tutorial si basa su un sistema Linux):

cd /var/www/
sudo mkdir tutorial_bot
sudo chown user:www-data tutorial_bot
sudo chmod 775 tutorial bot

Nella cartella installa il framework necessario per creare il chatbot:

cd tutorial_bot
composer require mpociot/botman

Crea ora un nuovo file index.php che conterrà l’intera applicazione. Per ora, copia la Basic Usage di Botman e incollalo nel file index.php. Poi, modifica il codice in questo modo:

// create an instance
$botman = BotManFactory::create($config);
$botman->verifyServices('MY_SECRET_VERIFICATION_TOKEN');

La riga appena inserita verrà utilizzata da Facebook per verificare il corretto funzionamento dell’applicazione scritta, inoltre sarà rilasciata la possibilità di eseguire l’iscrizione della pagina al webhook.

Recupera ora i valori token e app_secret.

Torna alla tua Facebook App e nella dashboard, sezione riepilogo, troverai la voce app secret. Clicca su "Mostra" e una volta ricevuta la chiave inseriscila al posto di facebook_app_secret. Adesso vai nelle impostazioni di Messenger per attivare il token: nella sezione Generazione Token, seleziona la tua pagina per trovare il token da inserire nel config al posto della voce facebook_token.

Sempre nella stessa pagina puoi attivare gli webhook, necessari per configurare il parametro verification, che verranno utilizzati all’interno della nostra applicazione per recuperare quello che scrive l'utente.

Per procedere con la configurazione Facebook richiede un indirizzo di Callback con un protocollo in https. Possiamo utilizzare diversi servizi per far puntare la nostra applicazione verso l’esterno con un protocollo https tra cui:

Per questo tutorial abbiamo utilizzato Heroku e abbiamo inserito all’interno di una nuova app l’intero progetto.

Ora puoi aggiungere il webhook mettendo come indirizzo di Callback la tua URL e come verifiy tokenun token generato random: sarà lo stesso che dovrai inserire nella sezione config al posto della voce verification. Seleziona tutte le checkbox sottostanti e clicca su "Verifica" una volta completata l’operazione. Sempre nel box Webhook, esegui l’iscrizione selezionando la tua pagina.

Per completare il tuo chatbot ti manca solo da modificare il file index.php inserendo questo codice:

$botman->hears('.*(Hi|Start).*', function (BotMan $bot) {
  $bot->reply(ButtonTemplate::create('Welcome to Wellnet! How can I help you?')
    ->addButton(ElementButton::create('Where we are')->url('https://www.google.it/maps/place/Wellnet+S.r.l./@45.467766,9.173752,17z/data=!3m1!4b1!4m5!3m4!1s0x4786c151cfb6560f:0x529a891fd0d58a8c!8m2!3d45.4677623!4d9.175946'))
    ->addButton(ElementButton::create('Contact')->url('https://www.wellnet.it/contatti'))
    ->addButton(ElementButton::create('Want a quote?')->url('https://www.wellnet.it/contatti'))
  );
});

Al posto dei campi specifici su Wellnet, inserisci quello che si riferiscono alla tua pagina. Concludi salvando il file.

Ora il tuo chatbot è pronto! Vai sulla tua pagina Facebook, clicca su "Invia un messaggio" e scrivi Hi. Se è stato fatto tutto correttamente, il bot risponderà subito.

In ogni caso, il bot non è ancora "pubblico" ma è, per adesso, utilizzabile soltanto dagli amministratori della pagina. Nella Parte 2 di questo articolo vedremo come portarlo fino alla pubblicazione.

Puoi vedere il risultato finale del nostro tutorial alla pagina Facebook Tutorial Bot.