Creare un chatbot Messenger tramite PHP

Creare un chatbot Messenger tramite PHP

Quando decidi di costruire un chatbot Messenger, puoi scegliere di seguire due strade, questa è quella più tortuosa ma che potrebbe dare ottimi risultati. Sei pronto a seguirla?

Pubblicato il Scritto da Matteo Feduzi Facebook, Meta 2 commenti

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!

Ehy! Anche tu sei un appassionato sfegatato del Messenger Marketing? Bene, devi assolutamente leggere il libro Chatbot Marketing di Luciano Zambito, un grande professionista del settore.

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”.

Se non hai un account developer ti verrà richiesto di crearne uno, lo puoi creare gratuitamente.

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.

Ti consiglio di aggiungere anche le altre richieste. Una volta aggiunte e inviate le richieste l’analisi richiederà all’incirca un’ora.

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.

Il parametro $hubVerifyToken potrebbe anche essere fb_bot_app. L’importante è che il token di verifica sia uguale sia su Facebook che nel 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.

Nel caso ti servano anche altri webhooks potrai aggiungerli in qualsiasi momento. Seleziona la voce scopri di più per sapere cosa permette di fare ogni evento.

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.

Hai bisogno di aiuto? Contattami gratuitamente tramite la chat in basso a destra.

Come svilupperai il tuo chatbot? Fammelo sapere nei commenti!

2Commenti
Lascia un commento
  1. Marco

    Grazie Matteo, è un ottimo articolo per creare il proprio bot personalizzato in maniera alquanto semplice.

    1. Matteo Feduzi

      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.

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *