Qualcuno con cui parlare

Creare un bot Telegram

di

thumbnail

09

mar

2018

Una nuova tendenza software che secondo alcuni supererà in rilevanza persino le app: le interfacce conversazionali.

[Pubblichiamo un estratto da Costruire bot con Node.js, libro che porta il dono della parola automatica a Skype, Twitter, Slack e altri ambienti, tra cui Telegram. Il libro spiega l’installazione di Node.js e npm, che questo articolo presuppone, assieme alla familiarità almeno minima con la riga di comando.]

Iniziamo creando, dalla riga di comando, una cartella sul disco fisso in cui posizionare il bot.

mkdir telegrambot
cd telegrambot

 

Partendo dal presupposto che siano installati Node.js e npm, creiamo e inizializziamo il nostro package.json, che conterrà le dipendenze e le definizioni del bot:

npm init

 

Dopo avere impostato le opzioni di npm init, otterrete qualcosa di simile a ciò che si vede nella figura seguente.

image_05_008

Nella vostra cartella del progetto vedrete i risultati, cioè il vostro file package.json.

129-2

Come nell’esempio precedente, utilizzeremo Express come framework REST per Node.js. Lo installeremo e salveremo nel nostro file package.json in questo modo:

npm install express --save

Dopo avere installato Express, dovreste vedere qualcosa di simile alla figura seguente.

image_05_010

Dopo l’installazione di Express, occorre installare il pacchetto node-telegram-bot-api.

Per l’installazione, eseguite questo comando di npm:

npm install node-telegram-bot-api --save

 

Il risultato dovrebbe essere simile a questo.

image_05_011

Di seguito, occorre aggiornare il package.json per aggiungere l’attributo engines. Aprite il file package.json con un editor di testo e aggiornatelo in questo modo.

"engines": {
    "node": ">=5.6.0"
}

 

Ora il vostro package.json dovrebbe avere questo aspetto.

image_05_012

Una volta impostato il bot, possiamo concentrarci sulla creazione della logica di base per le conversazioni con il bot stesso. Creiamo il file app.js, che rappresenterà il punto di ingresso del nostro bot.

Il file app.js dovrebbe contenere quanto segue.

var telegramBot = require('node-telegram-bot-api');
var token ='267449059:AAGzHJFlDkzOG5SxyOJJT2yHsiC06Ut6ySE'; var api = new ¬
telegramBot(token, {polling: true}); 
api.onText(/\/help/, function(msg, match) {
    var fromId = msg.from.id;
    api.sendMessage(fromId, "I can help you in getting the sentiments of any text ¬
you send to me.");
});
api.onText(/\/start/, function(msg, match) {
    var fromId = msg.from.id;
    api.sendMessage(fromId, "They call me MadansFirstTelegramBot. " +
    "I can help you in getting the sentiments of any text you send to me."+
    "To help you i just have few commands.\n/help\n/start\n/sentiments");
});
console.log("MadansFirstTelegramBot has started. Start conversations in your ¬
Telegram.");

 

Ora esaminiamo questo codice una riga per volta. Per prima cosa viene referenziato il pacchetto node che abbiamo installato prima con npm.

var telegramBot = require('node-telegram-bot-api');

 

Costruire bot con Node.js

Quando basta una risposta automatica, meglio un bot.

 

Una volta impostato il riferimento, siamo collegati al bot. Avremo in precedenza chiesto a BotFather un token per permettere al nostro bot di accedere alle API per i bot di Telegram; qui ci riferiremo allo stesso token, come nella schermata seguente.

var token ='267449059:AAGzHJFlDkzOG5SxyOJJT2yHsiC06Ut6ySE';
var api = new telegramBot(token, {polling: true});
});

 

Ora abbiamo un handle per interagire con il bot, tramite il token e le API per i bot. Vediamo come iniziare la conversazione con il bot. Per avviare un bot, Telegram utilizza il comando /start. Quando viene immesso tale comando, il bot dovrebbe presentarsi e chiederci come possa rendersi utile. Lo scopo viene raggiunto da questa porzione di codice.

api.onText(/\/start/, function(msg, match) {
    var fromId = msg.from.id;
    api.sendMessage(fromId, "They call me MadansFirstTelegramBot. " +
       "I can help you in getting the sentiments of any text you send to me."+
       "To help you i just have few commands.\n/help\n/start\n/sentiments");
});

 

In sostanza, il codice indica al bot che, se un utente invia il comando /start, dovrà inviare un messaggio di risposta con l’aiuto del metodo api.onText().

Ora avviamo il programma Node.js per iniziare la conversazione con il bot.

image_05_013

A questo punto, aprite la versione web di Telegram dal vostro account.

Conversare con il nostro semplice bot Telegram

Cercate il bot appena creato e collegato usando il suo nome, come nella schermata seguente.

133

Fate clic sul pulsante AVVIO e questo provocherà l’invio al bot del comando /start per iniziare la conversazione. Nella figura seguente vedete che il bot ha risposto al comando /start.

134

In effetti è stato eseguito ciò che abbiamo inserito nel file app.js per il comando /start e, tramite le API per i bot di Telegram, abbiamo ottenuto la visualizzazione della risposta.

Ora fate clic su /help o digitate /help per il vostro bot. La sua risposta al comando /help sarà la seguente, ovvero quella che abbiamo inserito nel programma Node.js.

135-1

Dato che dietro le quinte è in esecuzione il programma Node.js da app.js, il bot risponde ai comandi in base a ciò che è stato programmato in app.js.




Eduardo Freitas è esperto di big data e automazione di processi di business. È in grado di trasformare gli help desk in strumenti per migliorare le vendite e le attività di marketing. Nel corso della sua carriera ha aiutato numerose aziende a diminuire i costi di gestione operativa con risparmi fino al 70 percento. Madan Bhintade (@madanbhintade) è un consulente freelance specializzato in architetture software e soluzioni cloud basate su Amazon Web Services e Microsoft Azure. Vanta sedici anni di esperienza in settori diversi come assicurativo, bancario, finanziario e risorse umane. Si interessa con passione alla User Experience e alle evoluzioni nel campo dell'intelligenza artificiale.

Letto 2.433 volte | Tag: , , , ,

Lascia il tuo commento