Prima di spiegare come creare Bot Telegram PHP grazie ad Heroku, è bene spiegarti i motivi per cui potresti considerare utile l’approcio a queste nuove tecnologie sempre più utilizzate da grosse aziende. Stiamo parlando di veri e propri Robot in grado di rispondere a specifiche richieste o domande degli utenti.

Ti è mai capitato di avere bisogno di assistenza dal tuo operatore telefonico e aver inoltrato la richiesta con un messaggio sulla sua pagina Facebook? Ecco, probabilmente ti ha risposto un Bot.

Oggi con l’avvento degli smartphone, grazie ovviamente anche alla possibilità di essere sempre connessi ad internet, abbiamo avuto la fortuna di poter usufruire di tutta una serie di servizi di comunicazione, quali mail, social network e applicazioni per la messaggistica istantanea. Questi ci consentono non solo di comunicare con tutti, ma di farlo subito, ovunque e senza spendere un patrimonio e tutto questo letteralmente a portata di mano.

Facendo un piccolo abbonamento mensile, abbiamo la possibilità di inviare un numero illimitato di messaggi senza preoccuparci di finire il credito. In merito a questo, immagino che la maggior parte di voi conosca i due servizi più famosi di messaggistica istantanea: Whatsapp e Telegram.

Entrambi si avvalgono della connessione dati per darci la possibilità di comunicare con altre persone. I due servizi però non sono uguali, bensì hanno alcune caratteristiche che li differenziano rendendoli più o meno adatti ad una fascia di utenti più che ad un’altra.

Con Whatsapp ad esempio tu scrivi e chi è dall’altra parte risponde. Ti permette di comunicare e condividere foto o brevi video o file di alcuni tipi e anche di condividere note vocali. Tutte quelle azioni che solitamente al giorno d’oggi si svolgono tra due persone che si conoscono, utenti “semplici” che chiacchierano.

Telegram, dalla sua oltre ad integrare tutte le funzioni di Whatsapp, consente di condividere ogni tipo di file, di creare chat segrete, gruppi e supergruppi, canali e non necessita di backup perché salva tutto quanto sui suoi server (per tanto è quasi impossibile perdere foto o conversazioni), e ha una funzione che io trovo fondamentale per le aziende, soprattutto quelle grandi e importanti, una funzione che lo rende particolarmente indicato non solo per utenti privati, ma anche per utenze business.

Probabilmente a molti di voi sarà capitato di imbattersi in un gruppo o chat Telegram dove le conversazioni vengono gestite dai cosiddetti bot. Questi bot rispondono come fossero persone reali alle domande che facciamo.

Gli chiediamo una cosa e loro gentilmente ci rispondono. Increduli li insultiamo (io l’ho fatto) e loro ci intimano di essere più educati e cordiali. E ovviamente quando vedi che ti risponde a tono ci rimani di stucco, perché se dall’altra parte non c’è una persona in carne ed ossa, come è possibile avere quasi delle vere conversazioni con questi “esseri”?

Che cos’è un bot

come funziona, a che cosa serve? Cerchiamo di rispondere a queste domande in maniera semplice. Un bot, è un codice di programmazione che consente di automatizzare un servizio e di dialogare con utenti reali, tramite chat, senza che dall’altro lato ci sia un essere umano.

Una specie di intelligenza artificiale in grado di intuire il significato delle parole che noi scriviamo ed il contesto e di allacciarlo ad una possibile e del tutto pertinente risposta.

Per farla ancora più semplice, la persona che realizza il bot (che al più delle volte è finanziata da un brand importante che lo utilizzerà a fini di marketing e assistenza), pensa a tutte le domande che possono essere fatte in un determinato contesto in cui l’utente si troverà a scrivere e di conseguenza inseriscono tutte le possibili risposte che una qualsiasi persona potrebbe aspettarsi.

Come anticipato, a farne larghissimo uso, sono ad esempio le compagnie telefoniche come la TRE o VODAFONE, che si avvalgono di questi programmini per snellire in maniera davvero sostanziosa le innumerevoli richieste di assistenza da parte degli utenti.

Proprio qualche giorno fa, dopo aver richiesto la portabilità del mio numero in TRE, mi sono trovato a conversare con un bot per avere delucidazioni sulla tempistica del passaggio. Che dire?

Sembrava davvero di parlare con un altro essere umano. Devo essere sincero, la cosa mi ha affascinato, e ogni volta che qualcosa mi affascina io devo farla mia. Mi sono cimentato così nella creazione di un bot telegram tramite PHP ed ho pensato di realizzare per voi una guida passo passo facile e veloce. Serve giusto un po’ di dimestichezza con il linguaggio PHP e disporre di un account Dropbox.

Creare Bot PHP con Heroku

Cominciamo!!! Come primo passo, creiamo un account gratuito sulla piattaforma Heroku all’indirizzo https://www.heroku.com/. In alto a destra, clicchiamo su SIGN UP e compiliamo il form di iscrizione con i campi obbligatori (quelli con l’asterisco rosso per capirsi).

herokuAlla voce “Primary Development Language” selezioniamo PHP, spuntiamo “non sono un robot” e facciamo click su create free account. A questo punto dovremmo aprire la mail inserita in fase di registrazione per confermare il nostro account.

Riceveremo da Heroku una mail con un link all’interno, attraverso il quale potremmo completare la creazione del profilo impostando una password che dovrà essere di almeno 8 caratteri, contenere lettere e numeri, almeno una lettera maiuscola ed una minuscola ed un carattere speciale.

Andiamo nuovamente su Heroku e una volta effettuato il login, clicchiamo su create new app.
Impostiamo il nome dell’applicazione, es. simplebot e selezioniamo Europe nel campo region. Ora fai click su create app.

Imposta Dropbox come Deployment method delle applicazioni su Heroku.

Si aprirà una finestra del browser dove dovrai consentire ad Heroku di accedere a Dropbox.

heroku dropboxAl termine di questa fase sarà creata una cartella sul nostro account Dropbox denominata Applicazioni/Heroku/{APP NAME} dove {APP NAME} corrisponde al nome dell’applicazione impostata precedentemente: io ho scelto simplegpbot.

Scarica gli script PHP necessari per il funzionamento del nostro bot. Carichiamo nella cartella appena creata su Dropbox i file:

  • index.php
  • Procfile
  • composer.json
  • execute.php

Andiamo di nuovo su Heroku e facciamo click su deploy nella sezione deploychanges. Se tutto è andato a buon fine riceveremo come messaggio: Your app was successfully deployed.

Facendo click su view avremo lo url della nostra applicazione PHP. Nel caso di esempio lo url è https://simplebot.herokuapp.com/ – nel mio caso https://simplegpbot.herokuapp.com/

Adesso è ora di creare il bot su Telegram. Per procedere alla creazione di un bot devi chiedere al padre dei bot chiamato BotFather come ho già descritto approfonditamente in questa guida.

Questa operazione può essere effettuata tramite l’applicazione mobile scrivendo a @BotFather oppure dal client web all’indirizzo https://web.telegram.org.

Dopo aver aperto la conversazione digita il comando /newbot e poi rispondi alle domande del bot. BotFather ti invita a scegliere il nome del bot: Alright, a new bot. How are wegoing to call it? Please choose a name for your bot. Rispondi: (il nome che desideri) e poi invia.

Subito dopo BotFather ti chiede di scegliere lo username del bot: Good. Now let’s choose a username for your bot. It must be end in “bot”. Like this, for example: TetrisBot or tetris_bot.

Se lo username è disponibile ed è valido il bot risponde questo modo:
Done! Congratulations on your new bot. You will find it at telegram.me/{YOUR BOT NAME}. You can now add a description, about section and profile picture for your bot, see /help for a list of commands.

Use this token to access the HTTP API:
{YOUR TOKEN HERE}

For a description of the Bot API, see this page: https://core.telegram.org/bots/api
I campi {YOUR BOT NAME}, {YOUR TOKEN HERE} saranno opportunamente valorizzati, in particolare il secondo dei due è fondamentale per le fasi successive di configurazione del bot.

Estrai i files contenuti nel pacchetto zip all’interno di una cartella sul Desktop, o dove meglio credi, apri il file register.php (puoi aprirlo con un semplice programma per editare testo come il blocco note di Windows) e individua le seguenti righe:

$WEBHOOK_URL = ‘https://{APP NAME}.herokuapp.com/execute.php’;
$BOT_TOKEN = ‘{TOKEN}’;

Sostituiamo {APP NAME} con il nome dell’applicazione Heroku creata ad inizio guida e {TOKEN} con il token comunicato dal FatherBot (evidenziato in rosso).

telegram botfather dropboxCarichiamo su Dropobox il file register.php ed effettuiamo un nuovo deploy. A deploy terminato visitiamo con un browser web la url https://{APP NAME}.herokuapp.com/register.php.

In questo modo richiamerai lo script register.php che ha lo scopo di comunicare a Telegram l’indirizzo dell’applicazione web che risponderà alle richieste del bot. Se tutto è andato a buon fine la pagina web mostra il seguente messaggio:
{“ok”:true,”result”:true,”description”:”Webhookwas set”}

Rimuoviamo il file register.php da Dropox ed effettuiamo un ultimo deploy. Il bot è terminato. Ora non dobbiamo fare altro che aprire un client Telegram o da app android, ios o windows phone, oppure da web ed avviare una chat con il bot cercandolo tramite lo username scelto in precedenza.

Ora il bot è pronto per essere configurato per ogni tua esigenza. Tutte le istruzioni devono essere programmate sul file esecute.php.