Il mondo della tecnologia si evolve sempre più rapidamente e con esso anche i mezzi che ci permettono di fare marketing.
I chatbot Messenger sono la novità del momento e oggi vedremo come costruirne uno tramite codice.
Lo realizzeremo utilizzando il linguaggio di programmazione PHP e avremo bisogno di:
- Una pagina Facebook dove collegare il nostro bot.
- Una piattaforma hosting con protocollo SSL che supporti il linguaggio di programmazione PHP. (In questa guida utilizzerò Heroku).
Sei pronto? Partiamo!
1. Creare una pagina Facebook
Se si vuole usufruire di un chatbot Messenger la prima cosa da fare è creare una pagina Facebook.
Se ne possiedi già una puoi passare al secondo step.
2. Creare un app Facebook
Adesso è il momento di creare la tua app Facebook. Inserisci il nome dell’app e seleziona il bottone “Crea una nuova Facebook App ID”.
Una volta completati i passaggi richiesti ti troverai nella dashboard di “Facebook for developers”.
3. Configurare Heroku e GitHub
Per prima cosa vai su Heroku e se non hai già un account effettua la registrazione gratuita.
Ti verrà chiesto fin da subito di creare la tua app, perciò segui i passaggi guidati.
Adesso seleziona la tua app, raggiungi la sezione deploy e connetti GitHub, quindi assicurati di possedere un account GitHub.
Dopodiché vai su GitHub e crea un progetto con al suo interno un file index.php come nell’immagine qui sotto.
All’interno del file index.php aggiungi il seguente codice di test.
<?php
echo 'Questo è un messaggio di test';
?>
Ora torna su Heroku nella pagina deploy e scorri fino infondo e seleziona il bottone “Enable Automatic Deploys”.
Adesso vai nella pagina Settings e scorri fino alla sezione Domains. Qui troverai l’URL della tua app, selezionalo.
Se è andato tutto correttamente dovresti trovarti davanti il messaggio che abbiamo inserito nell’echo del file index.php.
4. Installare il webhook
Il webhook, in questo caso, è un file PHP che Facebook chiamerà con un payload ogni volta che un utente invia un messaggio al bot.
Il nostro compito sarà quello di analizzare il messaggio ricevuto e inviarne un altro tramite il formato JSON.
Ora copia il codice presente qui sotto, vai su GitHub nel file index.php e incolla lì questo codice sostituendo il codice inserito precedentemente.
<?php
// parametri
$token_accesso_pagina = 'TOKEN_ACCESSO';
$token_verifica = 'fb_bot';
// Convalida il token di verifica necessario per configurare il webhook
if (isset($_GET['hub_verify_token'])) {
if ($_GET['hub_verify_token'] === '$token_verifica') {
echo $_GET['hub_challenge'];
return;
} else {
echo 'Token di verifica non valido.';
return;
}
}
// Ricevi e invia messaggi
$input = json_decode(file_get_contents('php://input'), true);
if (isset($input['entry'][0]['messaging'][0]['sender']['id'])) {
// Invia l'ID della pagina Facebook
$sender = $input['entry'][0]['messaging'][0]['sender']['id'];
// Messaggio inviato dall'utente
$message = $input['entry'][0]['messaging'][0]['message']['text'];
$url = 'https://graph.facebook.com/v2.6/me/messages?access_token=$token_accesso_pagina';
// Inizializza curl
$ch = curl_init($url);
/* Prepara risposta
$jsonData = '{
"recipient":{
"id":"' . $sender . '"
},
"message":{
"text":"Hai scritto:, ' . $message . '"
}
}';
// Impostazioni curl per inviare i dati di un post JSON
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $jsonData);
curl_setopt($ch, CURLOPT_HTTPHEADER, array('Content-Type: application/json'));
if (!empty($message)) {
// L'utente riceve il messaggio dal bot
$result = curl_exec($ch);
}
}
?>
5. Configurare l’app di Facebook
Adesso torna nella dashboard di Facebook for developers, scorri fino ad arrivare ad aggiungi un prodotto e seleziona il bottone configura di Messenger.
Una volta fatto ciò Messenger verrà aggiunto nella barra laterale a sinistra sotto prodotti. Seleziona Messenger, poi impostazioni e dovresti raggiungere la schermata qui sotto.
Seleziona il bottone Aggiungi o rimuovi pagine presente nella sezione Token d’accesso e collega la pagina in cui vuoi attivare il bot.
Una volta collegata la pagina genera il token di accesso per quest’ultima.
Ora inserisci il token generato al posto di TOKEN_ACCESSO nel file index.php.
Prima di procedere alla sezione webhooks e aggiungere un URL di callback assicurati di aver aggiunto e abilitato pages_messaging alla sezione analisi dell’app per Messenger. Questo abiliterà la ricezione e l’invio di messaggi.
Adesso spostiamoci nella sezione Webhooks, sempre all’interno di impostazioni di Messenger, e aggiungiamo un URL di callback.
Su URL di callback inserisci l’URL presente nella sezione Settings > Domains di Heroku.
Mentre su Token di verifica inserisci il valore presente sul parametro $hubVerifyToken del file index.php.
Una volta inseriti questi due valori verifica e salva. Verrà così collegata la tua pagina Facebook.
Prima di procedere e testare il nostro bot rimane solo una cosa da fare: aggiungere gli eventi webhooks che ci servono. Per farlo seleziona il bottone aggiungi iscrizioni e inserisci la spunta su messages.
Ora sei pronto a testare il tuo chat bot. Vai sulla pagina Facebook collegata, invia un messaggio e riceverai la seguente risposta: “Hai scritto: (messaggio inviato)”.
Conclusioni
Per ora abbiamo visto come creare un chat bot Messenger di base tramite PHP.
Vuoi ampliare il tuo bot? Ti consiglio di esaminare la libreria ufficiale di Facebook riguardo alla piattaforma Messenger.
Tieni in considerazione che nella libreria viene utilizzato il codice Node.js e non il PHP.
Come svilupperai il tuo chatbot? Fammelo sapere nei commenti!
Lascia un commento
Grazie Matteo, è un ottimo articolo per creare il proprio bot personalizzato in maniera alquanto semplice.
Grazie Marco! Si, la guida è a un livello base ed ideale un pò per tutti se si vuole un chatbot Facebook personalizzato.
Un abbraccio,
Matteo.