Spesso nell’ambito informatico sentiamo parlare di BOT (che non hanno a che fare niente con i buoni ordinari del tesoro) in diverse occasioni e, per lo piรน, negative per cui molti di noi associano questa parola senza conoscerne il reale significato a qualcosa di fastidioso; in realtร un BOT puรฒ essere anche qualcosa di divertente con cui giocherellare un po’.
Iniziamo, quindi, dando al BOT una definizione che si rispetti: BOT รจ una contrazione della parola robot che tutti noi conosciamo ma, la perdita del suo suffisso “ro” ci suggerisce che non siamo di fronte a quello che il linguaggio comune intende come robot; il BOT, infatti, non ha un corpo meccanico visibile ma รจ un software, o programma, che porta a termine operazioni automatizzate. Questi puรฒ ripetere dei compiti, o task, in modo ripetuto e meccanico oppure eseguire dei comandi di fronte a dei dati input. Esistono, ovviamente, diversi tipi di BOT disegnati per differenti operazioni, vediamone alcuni giusto per farcene un’idea:
- Web crawlers o spiders, questo BOT vengono utilizzati normalmente dai siti di ricerca come per esempio Google e scannerizzano regolarmente la rete in cerca di siti web permettendone l’indicizzazione.
- Chat room BOTS, questi BOT invece controllano le frasi scritte dagli utenti via chat e rispondono a certi input con azioni automatiche. Per esempio, se l’utente utilizza una parolaccia o un insulto contenuti nel dizionario conosciuto dal BOT questi potrebbe inviargli un messaggio automatico avvertendolo di non utilizzare un linguaggio inappropriato oppure cacciandolo direttamente dalla chat. Logicamente piรน il software risulta elaborato a livello di programmazione, piรน il BOT potrebbe apparire umano.
- BOT “cattivi”, quelli a cui accennavamo prima, sono BOT che portano a termine azioni fastidiose o dannose. Per esempio, inviano e-mail o sms di spam pubblicitario in automatico ai nostri indirizzi; oppure, i DoS BOTS che inviano talmente tante richieste ad un sito da intasarlo e mandarlo in tilt; oppure, ancora, i Botnets, ovvero un gruppo di computer infetti, tutti controllati dalla stessa fonte (un hacker), che vengono utilizzati come BOT per inviare ad altri spam, o virus, o per duplicare siti web, o altro ancora.
Ma veniamo al dunque e concentriamoci su The Botfather di Telegram. Come giร avremo intuito stiamo parlando di un BOT, o meglio il Padrino dei BOT di Telegram: questi, infatti, ci permette di creare un nostro personale BOT con cui interagire e far interagire altre persone su Telegram. Ci sono vari motivi per cui avremo voglia di creare un BOT e tante possibilitร che possiamo inventarci relative a come e quando utilizzarlo; per esempio, potremmo aggiungerne uno a qualche gruppo di Telegram particolarmente attivo ed usarlo per inviare messaggi fuori contesto o per fare il pappagallo e ripetere frasi altrui (qui un articolo in inglese che spiega come creare quest’ultimo). Ora, vedremo passo passo come impostarne uno ed in specifico la nostra idea รจ quella di descrivere come creare un BOT per la ricerca di contenuti all’interno di un sito, nel nostro caso ovviamente utilizzeremo il nostro blog come pretesto.
Per farlo ci sono tre diverse fasi che dobbiamo seguire: la creazione del BOT su Telegram, l’impostazione di Google API e dell’identitร di quanto in oggetto, e l’impostazione del sistema operativo. Ricordiamo inoltre che Google per le sue API ha imposto un limite di 100 ricerche con piano gratuito, oltre questo sarร necessario pagare.
PRIMA PARTE: CREAZIONE DEL BOT SU TELEGRAM
- Apriamo Telegram sul nostro smartphone oppure con l’applicazione web (qui) e selezioniamo in alto a destra (oppure nella colonna di sinistra a seconda della versione che stiamo utilizzando) l’icona per la ricerca. Comparirร una barra sottostante dove scriveremo botfather: selezioniamo la prima scelta (quella con l’avatar riportato all’inizio di questo post) cliccandoci sopra.
- Si aprirร , quindi, una finestra di chat dove ci verrร spiegato in inglese cosa possiamo fare con il BOT di telegram ovvero: “BotFather รจ il bot prescelto per controllarli tutti. Usalo per creare nuovi account bot e gestire i tuoi bots esistenti”; sotto ci vengono dati due link di cui il primo ci spiegherร un po’ di cose sui bot di telegram e come usarli, mentre il secondo รจ un manuale API, ovvero per l’interfaccia di programmazione dell’applicazione in questione; ci viene dato anche il contatto per il supporto e per domande relative a tale manuale.
Clicchiamo in basso al centro su Startย per iniziare a creare il nostro personale BOT. - BotFather ci fornirร cosรฌ un elenco di comandi che ci suggeriranno come procedere per iniziare ad impostarlo e che riportiamo nell’immagine sottostante. La lista qui sotto riportata potremo revisionarla ogni qualvolta desideriamo inserendo il comando:
/help
- Iniziamo allora a creare il nostro nuovo bot inviando il seguente comando:
/newbot
The BotFather ci risponderร richiedendoci, gentilmente, di dare un nome al nostro BOT; noi logicamente l’abbiamo chiamato CodexSprawl. Dopodichรฉ dovremo sceglierne un nome utente che non sia necessariamente lo stesso del nome del BOT: ricordiamoci, qui, che il nome utente dovrร necessariamente finire con la parola bot; noi abbiamo usato CodexSprawl_bot come mostrato nell’immagine sottostante.
A questo punto ci verrร dato un indirizzo URL dove troveremo il nostro BOT (qui il nostro: t.me/CodexSprawl_bot),ย l’indirizzo dell’interfaccia HTTPS API che vedremo come utilizzare tra poco edย una chiave alfanumerica scritta in rosso che ci servirร piรน tardi! (oscurata nell’immagine sottostante) - Con i comandi /setdescription e /setabouttext sarร possibile aggiungere una descrizione del nostro bot e di chi lo ha creato.
SECONDA PARTE: IMPOSTAZIONE DI GOOGLE API E CONSEGNA DI UN’IDENTITร AL BOT
- Andiamo sul sitoย https://cse.google.it/cse/ e, in alto a destra, clicchiamo sul tasto “Crea un motore di ricerca personalizzato”. Qui potremo inserire il nome del o dei siti su cui cercare che, nel nostro specifico caso รจ il presente codexsprawl.wordpress.com, impostare la lingua preferita ed il nome del nostro motore di ricerca (Wintermute). Inoltre, come mostrato nell’immagine sottostante sulla destra sarร possibile configurare ulteriormente il nostro motore di ricerca andando sulla colonna di sinistra e selezionando prima “Modifica motore di ricerca” e successivamente “Configurazione” dove troveremo ID del motore di ricerca: cliccandovi ci verrร data una chiave che ci servirร successivamente!
- Adesso andiamo sul sitoย https://developers.google.com/custom-search/json-api/v1/overviewย per accedere al JSON API.
Per chi non lo sapesse API รจ l’acronimo di Application Programming Interface (Applicazione per la programmazione dell’interfaccia) ed รจ uno strumento per sviluppatori che permette e semplifica, appunto, la programmazione delle proprie applicazioni attraverso un’interfaccia grafica. JSON API serve proprio a recuperare e visualizzare dei risultati di ricerca Google personalizzati. Scrolliamo la pagina ed andiamo a cliccare su Get a key (Prendi una chiave). - Si aprirร allora una finestrella che ci dirร di abilitare l’API per la ricerca personalizzata (Enable Custom Search API) invitandoci ad accettare i termini di contratto che dopo averli eventualmente controllati confermeremo cliccando su Yes e Next.
- A questo punto ci verrร data la nostra lunga chiave alfanumerica, nell’immagine qui sotto oscurata, che potremo copiare automaticamente cliccando sulla piccola icona a destra segnalata nell’immagine sottostante da una freccia rossa.
- Se non abbiamo alcun software come Visual Studio per la modifica dei codici sorgente possiamo scaricare il semplice Notepad++ da qui ed installarlo.
Fatto questo, andiamo nella cartella in cui abbiamo posizionato la cartella decompressa google-search-telegram-bot-master (nel nostro caso Downloads\google-search-telegram-bot-master\google-search-telegram-bot-master) ed apriamo con Notepad++ il file config come mostrato nell’immagine sottostante. - Una volta avuto accesso al file config modifichiamo alcune linee aggiungendo/incollando tra le virgolette giร predisposteย le varie chiavi alfanumeriche qui in lista e come mostrato nell’immagine sottostante:
- telegram_bot_token, ovvero la chiave scritta in rosso dataci dal bot in telegram al momento della sua creazione;
- google_api_key, cioรจ la chiave alfanumerica che ci viene data su CSE nella sezione Informazioni di Base, cliccando su ID del motore di ricerca.
- search_engine_ID, che sarebbe la chiave che abbiamo ottenuto da JSON API al punto 3 di questa sezione.
TERZA PARTE: IMPOSTAZIONE DA TERMINALE
Per concludere scarichiamo quiย l’Unofficial Google Search Telegram Bot di nkming2 che, gentilmente, ha messo a disposizione online il proprio lavoro ricordandoci che le ricerche non possono superare il numero di 100 a causa di un limite imposto da Google stesso.
Per scaricare il piccolo programma basterร andare a destra cliccando sul tasto verde “Clone or download” (clona o scarica) e selezionare Download ZIP.Questa applicazione necessita della presenza di Python 3 per cui, se non l’abbiamo giร installata nel nostro computer, sarร ora di farlo cliccando quiย e di Telepot qui(che scaricheremo posizionando, per comoditร , la cartella decompressa all’interno di quella di google-search-telegram-bot-master).
- Decomprimiamo i files appena scaricato di Unofficial Google Search Telegram Bot e di Telepot: cliccando con il tasto destro del mouse sulla cartella diamogli il comando di estrarre tutto; scegliamo/controlliamo la cartella in cui questi verrร localizzato e clicchiamo su Extract (Estrai).
- Andiamo sul nostro terminale, per aprire la cartella decompressa se siamo su Windows 10 basterร cercare CMD oย Command Promt nella barra accanto allo Start in basso a sinistra.
- Accediamo alla cartella con il comando cd e, direttamente, al file con il comando:
cd Downloads\google-search-telegram-bot-master
Dove Downloads ed il nome del file coincideranno con quelli selezionati durante l’estrazione della cartella avvenuta poco prima.
- Lavorando su Windows, e dipendentemente dalla versione di Python che stiamo utilizzando potremmo trovare dei problemi di dipendenze che, purtroppo, sono difficili da prevedere, come il non riconoscimento dei comandi Python, e che richiedono un po’ di pazienza e prove per trovare la giusta “formula” e continuare il nostro percorso. Nel nostro specifico caso stiamo usando la versione di Python 3.6.5. Abbiamo aggiornato la versione nuova di PIP (Python Package Index) che ci aiuta a gestire i pacchetti di Python in ambiente Windows con il seguente comando su CMD:
py -m pip install --upgrade pip
- Se non l’abbiamo ancora fatto scarichiamoย Telepot qui, decomprimiamo la cartella e posizioniamola dentro a quella di google-search-telegram-bot-master. Poi, su cmd scriviamo il seguente comando:
py -m pip install telepot
- Ora installiamo anche la libreria Requests di Python allo stesso modo, con il seguente comando:
py -m pip install requests
- A questo punto controlliamo la directory in cui ci troviamo con dir, se non ci troviamo ancora all’interno della cartella google-search-telegram-bot usiamo il seguente comando:
cd google-search-telegram-bot-master
- Dopodichรฉ utilizzando setup.py installando -e . stando attenti a non dimenticare di lo spazio ed il punto accanto alla e cosรฌ da permetterci di installare tutte le dipendenze necessarie:
py -m pip install -e .
- A questo punto aggiungiamo il comando:
set PYTHONPATH=src
- Dopodichรฉ, facendo attenzione ad utilizzare il doppio underscore (ovvero _ ) scriviamo:
py src/app/__init__.py
Se in questo ultimo passaggio non si presentano errori il nostro Bot, finalmente, รจ funzionante! Buon divertimento!
NOTA BENE: per mantenere il BOT sempre on-line sarร necessario avere il computer acceso e attivo sul terminale; per riavviare il BOT, nel caso il pc si fosse spento, dovremo riutilizzare i comand al punto 9 e 10, ovvero:
set PYTHONPATH=src py src/app/__init__.py dalla solita directory
Il BOT che abbiamo appena creato puรฒ essere trovato sulla ricerca di Telegram scrivendovi CodexSprawl, il suo nome รจ Wintermute e l’icona presente รจ la stessa del nostro blog, oppure a questo indirizzo:ย t.me/CodexSprawl_bot.
Lascia un commento