Risparmia 100€ con il codice BIGADATA100

Big Data Executive | Milano | sabato 30 novembre

Iscriviti
Home
Creare un bot Telegram

09 Marzo 2018

Creare un bot Telegram

di

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.

package.json

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.

DOpo l'installazione di Express

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.

5-11

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.

5-12

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/helpn/startn/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');

 


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/helpn/startn/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.

5-13

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.

L'autore

  • Eduardo Freitas
    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%.
  • Madan Bhintade
    Madan Bhintade è un consulente freelance specializzato in architetture software e soluzioni cloud basate su AWS e Microsoft Azure. Vanta 16 anni di esperienza in settori diversi come assicurativo, bancario, finanziario e HR. Si interessa con passione alla UX e alle evoluzioni nel campo dell'intelligenza artificiale

Vuoi rimanere aggiornato?
Iscriviti alla nostra newletter

Novità, promozioni e approfondimenti per imparare sempre qualcosa di nuovo

Gli argomenti che mi interessano:
Iscrivendomi dichiaro di aver preso visione dell’Informativa fornita ai sensi dell'art. 13 e 14 del Regolamento Europeo EU 679/2016.

Corsi che potrebbero interessarti

Tutti i corsi
corso-data-governance Simone Aliprandi Corso In aula

Data governance: diritti, licenze e privacy

I dati sono ovunque intono a noi ma per poterli utilizzare in sicurezza bisogna confrontarsi con temi complessi che riguardano licenze, proprietà intellettuale e privacy. Se non ti senti sicuro o hai paure di prendere la decisione sbagliata, il corso di Simone Aliprandi fa per te.

249,00

Milano - 31/1/2020

con Simone Aliprandi


Libri che potrebbero interessarti

Tutti i libri

DevOps

Guida per integrare Development e Operations e produrre software di qualità

33,90

49,89€ -32%

25,42

29,90€ -15%

19,99

di Fabio Mora

Sviluppare applicazioni Full Stack

Costruire soluzioni scalabili con React e GraphQL

39,90

59,89€ -33%

29,67

34,90€ -15%

24,99

di Sebastian Grebe

Analisi del linguaggio con Python

Imparare a processare testo e audio con le librerie open source

22,50

32,89€ -32%

16,92

19,90€ -15%

12,99

di Serena Sensini


Articoli che potrebbero interessarti

Tutti gli articoli