Nonostante il mondo della messaggistica appartenga in buona parte a WhatsApp, si sta facendo sempre più largo tra l'utenza Telegram, un sistema che
piace a tutti: agli utenti per facilità, ricchezza di funzioni e riservatezza; ai programmatori per la disponibilità di API; alle aziende e ai gruppi di persone in genere per la
possibilità di fare marketing e distribuire notizie. In questa guida, ci occupiamo della realizzazione di Bot con Telegram, ovvero applicazioni che scambiano informazioni
per vari scopi utilizzando come canale di comunicazione proprio l'app di messaggistica. La loro realizzazione, come vedremo, non sarà particolarmente complessa e si potrà
affrontare con qualsiasi linguaggio grazie alle molte librerie già esistenti.
Prima di entrare nel vivo dello sviluppo di Bot, in questa lezione scopriremo quali sono le caratteristiche salienti di Telegram ed i suoi
punti forza.
I punti cardine di Telegram
Telegram ha origini russe. Inventato nel 2013 da Pavel Durov, considerato il Mark Zuckerberg russo perché inventore del social network VK, e da suo fratello Nicolai: il primo
finanziatore del progetto, il secondo responsabile tecnico. Sin da quell'anno sono apparsi i client per iOS e Android e da lì ogni sistema operativo se ne è dotato. Se
dovessimo indicare, tra i vari, i punti più forti che rendono Telegram famoso potremmo concentrarci su:
- velocità: Telegram è molto veloce e ciò è sempre stato visto come una delle caratteristiche più irrinunciabili. Inoltre la sua comunicazione si basa su un protocollo
unico, inventato personalmente da Nicolai Durov. Ciò ha permesso, da un lato, una grossa capacità di ottimizzazione, dall'altro ha rafforzato gli aspetti di sicurezza; - gratuità: Telegram promette di rimanere gratuito per sempre. Al momento grazie ai finanziamenti a disposizione non necessita né di chiedere contributi né di proporre
pubblicità. Questo è un aspetto molto importante che favorirà la diffusione del sistema. Ciò sarà un vantaggio per l'utente ma anche per il programmatore che vi baserà parte
del suo know-how; - Cloud: Telegram è interamente cloud-based. Sin dalle sue origini ha subito fatto scalpore la sua possibilità di inviare allegati anche di 1,5 Gigabyte e ciò proprio perché tutto, anche
gli elementi multimediali, vengono condivisi con il supporto del Cloud. Questo, inoltre, facilita la condivisione dei dati, indipendentemente dal client che si utilizza. Si può passare da un client Android, ad esempio, alla versione web o a una qualsiasi altra app e trovare sempre a disposizione tutto ciò
che il proprio account ha scambiato nel tempo; - sicurezza: oltre al protocollo personalizzato cui abbiamo accennato prima, il cardine della sicurezza di Telegram è la sua crittografia. A grandi linee, in Telegram esistono
due tipi di chat: quella privata tra utenti e quella segreta. Una chat privata viene svolta normalmente inviando messaggi ad un altro utente, è scambiata via Cloud e la crittografia applicata è
server-client. Le chat segrete vengono attivate con apposito comando, sono specifiche del dispositivo perché non scambiate in Cloud e permettono di creare messaggi in grado di "autodistruggersi".
Queste chat sono crittografate end-to-end, quindi da un client all'altro. A livello tecnico, la crittografia applicata in Telegram è basata su AES simmetrico a 256 bit, RSA 2048 e
scambio di chiavi con algoritmo Diffie-Hellman. Tutti i contenuti (sia testuali che multimediali) sono sempre crittografati nel medesimo modo.
Lo username in Telegram
Oltre agli aspetti sin qui evidenziati, un altro elemento importante sia per utenti che per programmatori di Bot è l'utilizzo di username. Quando si crea il proprio account in
Telegram, viene richiesto un numero di telefono. Questo, in realtà, viene richiesto solo per poter identificare univocamente un utente.
Per il resto, ogni utente può assegnarsi uno username - stringa univoca usata anteponendo un simbolo della chiocciola (@
) - tramite il quale essere contattato anche da chi non dispone del suo
numero di telefono. Senza entrare nei dettagli che riguardano l'utilizzo pratico delle chat, si consideri che questo aspetto è importante anche ai fini della nostra guida, in quanto i Bot saranno in
grado di "messaggiare" come utenti, e pertanto il primo passo per la loro creazione consisterà nell'assegnazione di un nome e di uno username.
Prima di continuare nel prosieguo della guida, il consiglio per chiunque sia interessato ad apprendere queste tecniche è di essere per prima cosa un utente Telegram: creare un account se non lo si ha già,
installare almeno un client ed iniziare ad utilizzare Bot e comunicare con altre persone.