Creare un Bot Telegram senza hosting

Nel 2016 ho scritto una guida per creare un bot Telegram step by step, oggi a distanza di più di 4 anni provo a riproporre un modo alternativo per fare la stessa cosa senza richiedere un servizio di hosting.

Anche in questo caso vedremo passo dopo passo come creare bot per Telegram semplicissimo.

Il bot non svolge nessuna azione utile se non quella di ripetere ciò che gli scriviamo.

Per prima cosa procediamo con la creazione del nostro bot su Telegram. Per procedere alla creazione di  un bot dobbiamo chiedere ad un bot chiamato BotFather di crearlo. Questa operazione può essere effettuata tramite l’applicazione mobile Telegram scrivendo a @BotFather oppure dal client web all’indirizzo https://web.telegram.org.

Dopo aver avviato la conversazione digitiamo il comando /newbot e poi rispondiamo ai messaggi del bot.

BotFather ci scrive di scegliere il nome del bot:

Alright, a new bot. How are we going to call it? Please choose a name for your bot. 

Rispondiamo: Echo e poi invia.

Successivamente BotFather ci chiede di scegliere lo username del bot:

Good. Now let's choose a username for your bot. It must be end in "bot". Like this, for example: TetrisBot or tetris_bot.

Rispondiamo: echobot e poi invia.

Se lo username è disponibile ed è valido il bot ci risponde come segue:

Done! Congratulations on your new bot. You will find it at t.me/{YOUR BOT NAME}. You can now add a description, about section and profile picture for your bot, see /help for a list of commands.
 
Use this token to access the HTTP API:
{YOUR TOKEN HERE}
Keep your token secure and store it safely, it can be used by anyone to control your bot.

For a description of the Bot API, see this page: https://core.telegram.org/bots/api

I campi {YOUR BOT NAME}, {YOUR TOKEN HERE} saranno opportunamente valorizzati, in particolare il secondo dei due è fondamentale per le fasi successive di configurazione del bot.

La fase successiva consiste nella creazione di un account sulla piattaforma Autocode.com che funzionerà da hosting del nostro bot Telegram.

Andiamo sul sito autocode.com, apparirà una pagina come quella seguente.

Facciamo click su Start building for free. A questo punto apparirà il seguente form.

Procediamo con la registrazione inserendo il nostro e-mail address, lo username da associare al nostro account ed una password. Per completare la registrazione facciamo click sul bottone Sign Up FREE.

Autocode ci porrà una serie di domande per conoscerci meglio. Al momento qualunque risposta diamo alle domande non ha alcun impatto sul nostro account.

L’ultima domanda ci chiede quale tipologia di piano vogliamo usare, noi sceglieremo Basic Free, quindi la versione gratuita.

Per proseguire facciamo click su Continue to Autocode. Apparirà la seguente schermata.

Facciamo click sul bottone Save in basso a destra. Nel popup che appare ci verrà richiesto di definire il nome del progetto. Inseriamo ad esempio echo-bot e facciamo click su Save new project.

L’area mostrata dalla figura seguente è l’editor che contiene il codice di esempio dello script __main__.js.

Cancelliamo il contenuto dell’editor e sostituiamolo con il codice contenuto su GitHub qui. Così facendo l’editor apparirà come nella schermata seguente.

Facciamo nuovamente click sul bottone Save per salvare le modifiche fatte.

Adesso dobbiamo comunicare a Telegram come raggiungere il nostro script Node.js pubblicato su Autocode. Per fare ciò dobbiamo recuperare il deploy url da autocode, che si trova in basso, racchiuso tra parentesi quadre.

Come mostrato nell’immagine sopra, il deploy url inizia con https ed è colorato di blu.

Proseguiamo con la modifica della stringa dell’indirizzo web che segue, sostituendo {YOUR TOKEN HERE} con il token generato da Bot Father ad inizio guida e {YOUR URL HERE} con il deploy url appena copiato.

https://api.telegram.org/bot{YOUR TOKEN HERE}/setWebhook?url={YOUR URL HERE}

Per costruire correttamente lo url come mostrato nell’immagine sottostante è necessario sostituire i testi segnaposto {YOUR TOKEN HERE} e {YOUR URL HERE} con i valori ottenuti durante il tutorial.

Nell’immagine che segue è mostrato un url ben formato.

Copia ed incolla l’url ben formato sulla finestra del tuo browser. Se tutto è andato bene la pagina web mostra il seguente messaggio

{"ok":true,"result":true,"description":"Webhook was set"}

Altrimenti controlla di aver effettuato le sostituzioni correttamente.

Il nostro bot è pronto. Non ci resta che aprire un client Telegram (app o web) ed avviare una chat con il bot cercandolo attraverso lo username scelto in precedenza.

Questions?

Have a question about this post or anything else? Ask away on Twitter or in my AMA repo.

11 thoughts on “Creare un Bot Telegram senza hosting”

  1. Salve, ho provato a seguire la procedura indicata tuttavia nella compilazione del codice su Autocode spunta fuori il seguente errore:
    RuntimeError: Cannot read property ‘chat’ of undefined

    TypeError: Cannot read property ‘chat’ of undefined
    at module.exports (/functions/__main__.js:11:36)

    The JSON output of the error is below.

  2. Ciao Antonio volevo chiarimenti, perché dal passo successivo alla registrazione la guida è cambiata probabilmente il sito è stato aggiornato, non saprei.
    Sto provando a seguirla cercando ad intuito ma non riesco, puoi rifarla con il nuovo aggiornamento.
    Grazie mille

  3. Ciao Salvatore, volevo capire come poter implementare una funzione che permetta al bot di restituire foto scelte a caso da una cartella ad una determinata istruzione.

    Grazie mille per la disponibilità.

    Teo

Leave a Reply

Your email address will not be published. Required fields are marked *