Come insultare programmaticamente le persone — pt. 1

Fabio Romita
Sep 16, 2015 · 3 min read

Alias: Come realizzare il proprio bot di Telegram con Node.js

Sapere un po’ di buon vecchio JavaScript può essere utile anche quando ci si vuole divertire un po’ realizzando un bot per Telegram. Racconterò la mia esperienza nella realizzazione di “BARETTOBOT” (astenersi religiosi e deboli di cuore), un bot dal carattere piuttosto “aggressivo” (ma simpatico alla fine, così tanto da farti morire — ma non dalle risate).

Cosa ti racconterò in questa puntata:

  1. realizzazione effettiva di un bot funzionante (codice e compagnia bella);
  2. come pubblicare il bot gratis tramite OpenShift.

I preparativi

Prendi il tuo PC, spegnilo, sfascialo sul pavimento e infine apri un editor di testo. Ora installa node.js (https://nodejs.org/) se non lo hai, poi verifica che ci sia npm (il gestore di librerie di node.js). Se sei cool come me, potresti usare c9 e creare immediatamente un ambiente di sviluppo online con node.js installato (tutto gratis). D’ora in poi farò conto che tu stia usando c9.

Per OpenShift dovrai installare il client tool, che richiede ruby e rubygems. Su c9 è già installato, quindi puoi procedere con il comando da terminale:

Dopo di che, bisogna fare il setup di Openshift. Mi raccomando controlla di avere git, se fossi rimasto qualche decina di anni indietro. Su c9 è già presente. Scrivi nel terminale:

Ti sarà richiesto di fare il login con l’account di OpenShift: vai sul sito e registrati, infine inserisci le credenziali.

Se sei su c9 svuota la cartella, altrimenti portati in una cartella in cui tieni i prodotti della tua mente malata, e crea l’applicazione con il tool rhc:

Il comando comprende:

  • bot: il nome dell’app su OpenShift (cambialo a tuo piacere);
  • node.js-0.10: l’ambiente preconfigurato di OpenShift;
  • -s: rende l’applicazione automaticamente scalabile, ovvero si aggiungono contenitori per l’app se necessario (fino a 1.5Gb di RAM).

Ora dovresti avere una cartella con lo stesso nome dell’app di OpenShift. Portati in quella cartella:

Elimina tutto tranne le cartelle nascoste .git, .openshift e il file package.json.

Apri il file package.json ed elimina la riga:

Perfetto, siamo pronti per iniziare.

Primi passi

Per il nostro bot useremo la libreria https://github.com/yagop/node-telegram-bot-api. Per installarla sarà sufficiente aggiungere una riga in package.json sotto l’elemento dependencies:

Ora esegui:

Bene, procedi creando un file server.js e inserisci il codice:

Come potrai notare abbiamo un token da ottenere e sostituire a YOUR_TELEGRAM_BOT_TOKEN.

Estrai il tuo ultimo ritrovato tecnologico a forma di smartphone. Vai su Telegram e cerca BotFather. Scrivigli:

Ti verrà chiesto di inserire il nome e il nome utente. Alla fine del processo otterrai un token: copialo al posto della suddetta stringa.

Se sei su c9 ora sarà sufficiente scrivere a terminale:

Torna su Telegram, cerca il tuo bot e tocca avvia.

Et voilà, ora hai un bot che risponde sempre:

AH COSI’ DISTURBI IL MIO SONNO? MALE. OPS ORA SEI SOTTO UN METRO DI TERRA ALCIBIADE

Non è molto ma funziona!

Nel terminale premi ctrl + c per spegnere il bot.

Pubblichiamo il nostro bot

Prima di pubblicare facciamo un commit con git:

Ora pubblichiamo:

Attenzione, potrebbe comparire un errore alla fine del git push, non preoccupartene, dovrebbe funzionare lo stesso!

E poi?

Se sai programmare di qui in poi dovresti essere in grado di procedere da solo. Aggiungi degli if per fitrare comportamenti diversi a seconda di msg.text:

Ulteriori esempi qui: https://github.com/yagop/node-telegram-bot-api/blob/master/examples/polling.js

Divertiti! Alla eventuale prossima puntata dovrei dispensare qualche consiglio imparato dalla mia esperienza con il mio bot.

Se vuoi conoscere il poco rispettabile BARETTOBOT puoi cercarlo o aggiungerlo cliccando qui.

TecnologicaMente

Cavi wireless e matite USB.

Fabio Romita

Written by

TecnologicaMente

Cavi wireless e matite USB.