Mentre qui su questo blog mi ritrovo con pochissimi lettori, su Medium c’è ancora gente che legge la guida su Altervistabot, nonostante la base sia stata deprecata e la guida sia molto elementare. L’indice ha avuto addirittura 9.000 visualizzazioni/anno.
Per questo motivo ho deciso semplicemente di non ripubblicarla su questo blog. Come esperimento, però, ho deciso di attivare la monetizzazione su Medium, per capire se è davvero efficace e quante persone leggono la guida con il Paywall (tendenzialmente 0).
La parte 1 ha 7,9k visualizzazioni, la parte 2 ne ha 3,5k, molta gente evidentemente abbandona la guida dopo aver letto la prima parte. Inoltre, la parte 1 è presente da più tempo dell’indice, considererei quindi come indicatore di gente che segue al guida proprio la parte 2 del bot, che è poi quella che contiene la parte più sostanziosa di codice.
È chiarissimo ovviamente che tutto il traffico provenga da Google (7,7k su 9k, l’85%), anche se sinceramente non vedo tutto questo interesse per la creazione di bot Telegram, che è rimasto molto costante nel periodo di interesse della guida.
Ora vi starete chiedendo, perché questi dati? Non lo so neanche io, ma mi è arrivata la mail periodica di Medium sulle statistiche e mi piaceva l’idea di condividere con qualcuno questa stranezza, anche se quel qualcuno è nessuno (come i lettori di questo blog).
Momento pessimismo, molto probabilmente (in base alle statistiche) queste righe non verranno lette da nessuno, ma va bene così.
Quando i lol ancora non esistevano, una sola parola indicava una risatina nel gergo dell’internet: asd. Grazie al bot telegram @asdcounterbot, potrete contare i vostri asd e competere con gli altri per vedere chi ne dice di più.
Gli asd, chi non se li ricorda gli asd. Quando i lol ancora non esistevano, una sola parola indicava una risatina nel gergo dell’internet: asd.
Come ci spiega Wikipedia, nasce come risatina nei giochi che funzionavano con le quattro lettere della seconda fila della tastiera QWERTY, WASD. Per evitare di staccare le mani dalle tre lettere, è nato l’uso di scrivere asd per comunicare una risata.
La bellezza di questa parola l’abbiamo conservata negli anni, tant’è che ci sono ancora dei nostalgici che la usano. Come testimoniare quest’uso se non creando un bot Telegram dedicato che dimostri quant’è viva e pulsante la comunità di persone che preferisce dire un bell’asd ad un brutto lol?
Ebbene, ho creato la soluzione per voi. Basta inserire il bot Telegram @asdcounterbot per apparire nella classifica globale, godersi il grafico degli asd inviati e se si vuole anche un messaggio ogni asd.
Il bot è nato da un’idea di Valerio Bozzolan, che si può considerare il campione vivente, l’impersonificazione della faccina dell’asd. L’ho sviluppata io, perché lui non ne aveva voglia, tempo o qualsiasi altra cosa, in Ruby on Rails 5, dopo un primo tentativo fallito in PHP. È hostata su Heroku.
Buon divertimento, buon asd. Correte ad aggiungere @asdcounterbot nei vostri gruppi.
Comandi
Se siete amanti della privacy e non volete apparire in classifica (in privato o in gruppo): /fuoriclassifica
Se volete ricevere un messaggio ad ogni asd invece che uno a mezzanotte (solo nei gruppi): /nightsend
Se volete visualizzare il vostro grafico personale o del gruppo (in privato o in un gruppo): /grafico
Nota: a quei tempi, asd non aveva tutti i significati di oggi, o non si conoscevano, quindi andava e va benissimo come risatina.
Come possiamo creare un gateway di collegamento tra IRC (sistema per chat testuali in giro da un po’ di anni) e Telegram (app di messaggistica nata nel 2013)? Creare una cosa del genere può esserci per esempio utile nel caso in cui abbiamo un canale IRC ed uno Telegram sullo stesso argomento/per lo stesso progetto e non vogliamo disperderne i messaggi.
Per questo tutorial utilizzeremo Teleirc di FruitieX, anche se ci sono diversi fork e versioni simili (come quello di RITlug) su Ubuntu 16.04 LTS (tramite Droplet di DigitalOcean).
Per comodità
Registriamoci, clicchiamo “Create droplet” e selezioniamo i dettagli.
Subito dopo creiamo il file di configurazione teleirc --genconfig, se ci sono problemi in questa fase usiamo il fixme dell’autore digitando mkdir ~/.teleirc
Problemi supplementari
Ebbene, durante l’installazione di teleirc possono verificarsi degli errori, uno di questi riguarda node-gyp. Se vi capita un errore del genere, seguite la procedura:
Aggiornamento di Node.js e npm
sudo npm cache clean -f
sudo npm install -g n
sudo n 4.4.5
sudo npm install npm -g
Se siamo riusciti ad eseguire l’installazione senza problemi procediamo ad eseguire la configurazione.
Creazione e configurazione del bot Telegram
Prima di tutto creiamo il bot su BotFather. Creiamo il nostro bot digitando /newbot e seguendo la procedura. Poi copiamo il token ricevuto nel messaggio ed incolliamolo nel file di configurazione che vedremo in questo passaggio.
Trovate qui un video su come personalizzarlo mentre qui un elenco già pronto di comandi da impostare (basta copiare ed incollare) quando si fa /setcommands.
Poi digitiamo /setprivacy, scegliamo il nome del nostro bot e clicchiamo Disable. In questo modo consentiremo al nostro bot Telegram di leggere i messaggi che inviamo nel gruppo e di inviarli a teleirc.
Configurazione di Teleirc
Facciamo cd ~/.teleirc ed apriamo dal nostro editor di testo preferito (io uso nano) il file config.js.
Per comodità ecco il comando nano config.js.
A questo punto ci ritroveremo con questo file di base di nome config.js, questa è una mia traduzione dei commenti fatta sulla base dell’ultima versione ad oggi. Vi consiglio di guardare sempre il repository ufficiale per la versione aggiornata.
Una volta che abbiamo configurato correttamente il bot, salviamo il file ed eseguiamo il comando teleirc. Finalmente, dopo tante peripezie, abbiamo fatto partire questo bot.
Vedrete entrare il bot con l’username che gli avete dato nel canale IRC che avete impostato.
Ma non è finita qui!
In alcuni casi, il bot potrebbe non aver acquisito correttamente il chatID del nostro gruppo e potrebbe richiederlo insistentemente su IRC. In questo caso dobbiamo inviare un messaggio qualsiasi sul nostro gruppo Telegram, eventualmente menzionando il bot utilizzando @usernamedelbot (quello che abbiamo impostato su BotFather).
Una volta aver visto il primo messaggio recapitato e nessun segnale controverso durante la sessione SSH (quindi vedendo solo uno spazio vuoto sotto al processo senza altri interruzioni e senza possibilità di eseguire altri comandi).
Ma se si chiudesse la sessione SSH? In questo caso non avremmo la possibilità di mantenere attivo il bot. Ci viene in aiuto GNU screens, ottimo strumento.
Digitiamo screen e subito dopo premiamo invio (ci uscirà una schermata di presentazione). Infine si aprirà una normalissima finestra SSH. Lì potremo digitare tutti i comandi che vogliamo che rimarranno in esecuzione anche dopo la chiusura del terminale (Attenzione! Chiudete il terminale, non killate la sessione)
Per recuperare la sessione basta digitare screen -r mentre per recuperare un elenco delle sessioni (per poi recuperarle se sono più di una) basta digitare screen -ls.
Con il riavvio le sessioni però si interromperanno.
Per questo motivo potete creare servizio per systemd, da posizionare in /etc/systemd/system, trovate un esempio dell’autore qui.
Note finali
Per accedere al gruppo di supporto di teleirc, basta ottenerne il link dando il comando teleirc --join-tg .
Per risolvere eventuali problemi, è possibile far entrare teleirc in modalità “verbose”, in modo che riporti tutti i log, anche quelli di debug, avviandolo con questo comando: teleirc -vvv.
È importante non terminare il processo forzatamente, ma chiuderlo solo con CONTROL + A.
Cosa importantissima, se riscontrate dei malfunzionamenti di qualsiasi tipo che riguardano l’invio dei messaggi da Telegram a IRC (Telegram =>IRC) vi consiglio di togliere e riaggiungere il bot, dopo aver verificato su @BotFather che l’opzione /SetPrivacy per il vostro bot sia su False.. Altra cosa importante, se non gradite che vengano caricate le immagini sul server, potete far sì che vengano caricate su Imgur, trovate una guida ufficiale qui.
È possibile anche impostare una regex per selezionare solo specifici messaggi da inoltrare da IRC a Telegram (e viceversa) e quali no. Trovate l’opzione alla fine del file di configurazione.
Spero che questa guida vi sia stata utile, è stata scritta qualche tempo fa quindi perdonate eventuali refusi e informazioni poco aggiornate! Fatemi sapere nei commenti come è andata e se state riscontrando problemi.
Uno dei più famosi è l’iraniano Mobogram che sarà costretto (insieme ad altri client) a disattivare la ghost mode, ma andiamo ad esaminare nel dettaglio cosa dicono questi ToS.
Vietato interferire
Il punto principale dei ToS è proprio questo:
1.4. It is forbidden to interfere with the basic functionality of Telegram. This includes but is not limited to: making actions on behalf of the user without the user‘s knowledge and consent, preventing self-destructing content from disappearing, preventing last seen and online statuses from being displayed correctly, tampering with the ’read‘ statuses of messages (e.g. implementing a “ghost mode”), preventing typing statuses from being sent/displayed, etc.
Significa che è vietato interferire con le funzionalità base di Telegram e parla esplicitamente di Ghost Mode.
In un suo tweet Durov ci aveva anticipato questa imposizione. Infatti diceva che Mobogram fosse poco aggiornato (e lo è, visto che si riferiva ad una “falsa” versione pubblicata sul Play Store) che questi client avrebbero dovuto rimuovere funzionalità come la Ghost Mode.
Mobogram is an outdated and potentially insecure fork of Telegram from Iran. I don't advise to use it.
È innegabile, comunque, che Mobogram (l’app originale ma anche l’app “finta” del Play Store) non rispetti i termini con cui è condiviso Telegram perché non ha a sua volta rilasciato il codice sorgente modificato mentre la GNU GPL 2.0 parla chiaro. La stessa cosa è stata fatta da altri client iraniani.
Monetizzazione
Un’altra parte dei ToS parla di monetizzazione e dice che i developer possono monetizzare la propria applicazione attraverso annunci o in altri modi legittimi, se menzionano il tutto nella descrizione dell’app negli store.
3.1. Developers are allowed to monetize their coding efforts through advertising or other legitimate means. 3.2. If you decide to monetize your app, you must clearly mention all the methods of monetization that are used in your app in all its app store descriptions.
Come Telegram si difenderà dalle violazioni dei ToS
Gli ultimi punti dei ToS parlano chiaro:
4.1. If your app violates these terms, we will notify the Telegram account responsible for the app about the breach of terms. 4.2. If you do not update the app to fix the highlighted issues within 10 days, we will have to discontinue your access to Telegram API and contact the app stores about the removal of your apps that are using the Telegram API in violation of these terms.
Dicono che nel caso in cui un app violi in qualsiasi modo questi ToS l’accesso alle API verrà bloccato (con la revoca del token) e Telegram stessa chiederà agli store di rimuovere l’app.
Telegram ha mandato il 30 agosto 2017 una comunicazione agli sviluppatori registrati dicendo:
Ciao, nome. Stai ricevendo questo messaggio perché sei il creatore dell’app nomeapp (api_id = api_id) che utilizza l’API di Telegram. Abbiamo recentemente aggiornato i Termini di Servizio per l’utilizzo della nostra API da parte dei client di terze parti.
Molto probabilmente i 10 giorni partono dalla data di invio dei messaggi, che sono arrivati in contemporanea a tutti gli sviluppatori registrati (almeno a quelli italiani).
Gli altri punti dei termini parlano sostanzialmente di quanto già detto: l’app non può contenere il nome “Telegram” nel nome a meno che non sia seguito dalla scritta unofficial, non potrà usare il logo di Telegram e dovrà rispettare i criteri di sicurezza.
Al momento, però, non tutti i client si sono adeguati.
Le citazioni dai termini di servizio di Telegram non rientrano sotto la licenza Creative Commons Attribuzione-Condividi allo stesso modo 4.0 ma sono citati per diritto di critica e di citazione.
È stata introdotta la possibilità di inviare foto e video con autodistruzione come su Snapchat, è stato ridisegnato e migliorato il photo editor ma soprattutto è stata re-introdotta la possibilità di inserire una breve biografia. Infatti, come testimonia questa guida scritta da OpenTelegramItalia, era possibile già in passato (ma in un modo più complicato) impostare una propria bio. Questa bio apparirà anche nella propria scheda profilo online (su link t.me/username) introdotta da poco per canali e bot (e con questo aggiornamento per gli user).
Ci sono delle limitazioni, però. Infatti, il numero massimo di caratteri è di 70. Paradossalmente, il numero massimo di caratteri per il nome ed il cognome è di 256 (molto più alto della bio!).
Inoltre, @TGbeta (canale autorevole su Telegram) comunica che eventuali username inseriti nelle proprie bio e nelle bio dei bot non saranno cliccabili su Android e iOS mentre gli username nelle bio dei bot (e solo quelli) saranno cliccabili su Telegram Desktop e sull’edizione specifica per macOS.
CDN: download più veloci
Un’altra novità introdotta dall’aggiornamento è un Content Delivery Network per i canali con più di 100.000 membri. Attraverso questo sistema, il cui funzionamento è stato descritto da Telegram in questo articolo dedicato, i contenuti (immagini e video) saranno scaricati più velocemente. Infatti, un CDN ha vari nodi distribuiti in tutto il mondo che consentono di raggiungere più velocemente l’utente e che evitano il sovraccarico di richieste per il server principale.
Una di questi nodi sarà posizionato in Iran perché è uno dei Paesi con i canali più grandi. I server rimarranno dove stanno.
One more thing, come diceva Steve Jobs e come ora ha detto Durov, la barra degli sticker è stata allargata.
Rapido rilascio dei sorgenti
Ogni aggiornamento Telegram deve rilasciare il codice sorgente delle varie edizioni dell’applicazione per consentire agli sviluppatori terzi (quelli che creano i cosiddetti client alternativi) di aggiornare anche le loro applicazioni. Purtroppo, molto spesso Telegram rilascia i codici sorgenti con molto ritardo ritardando, di conseguenza, l’aggiornamento degli altri client.
Ebbene, in questo caso i sorgenti sono stati rilasciati poco prima del rilascio dell’aggiornamento (come detto nel commento al rilascio su Github).
Pubblicato originariamente su mait.tech dal sottoscritto il 20 luglio 2017, il blog è stato chiuso di recente per ragioni che vi spiegherò in un post successivo.