JavaScript, HTML, CSS e... !
10 commenti

Ti bastano solo 2 semplici passaggi

[VIDEO - ITA] Crea un Bot per Telegram in 5 minuti

Per creare un bot di Telegram bastano davvero pochi minuti ed è alla portata di tutti. Con 2 semplici passaggi avrai un bot interattivo che risponde ai tuoi messaggi.

I requisiti per la sua creazione sono 2: ottenere una chiava di autenticazione, detta token, per l’accesso all’applicazione tramite le Telegram Bot API e l’impostazione di un webhook, ovvero un punto di chiamata sotto forma di URL, dove il bot è in ascolto per attivarsi in base ad un evento, ad esempio l’invio di un messaggio, e agire di conseguenza per fornire una risposta. Più facile a farsi che a dirsi considerando che con Google Apps Script vi bastano meno di 20 righe di codice che potete copiare e incollare.

In questo video ti mostro i passaggi da effettuare:

Di seguito il codice di cui hai bisogno:

var token = "IL_TUO_TOKEN"; 
var telegramUrl = "https://api.telegram.org/bot" + token; 
var webAppUrl = "IL_TUO_URL"; 

function setWebhook() {
  var url = telegramUrl + "/setWebhook?url=" + webAppUrl;
  var response = UrlFetchApp.fetch(url);
}

function sendMessage(chat_id, text) {
  var url = telegramUrl + "/sendMessage?chat_id=" + chat_id + "&text="+ text;
  var response = UrlFetchApp.fetch(url);
}

function doPost(e) {
  var contents = JSON.parse(e.postData.contents);
  var chat_id = contents.message.from.id; 
  var answer = "Iscriviti al mio Canale YouTube :)";
  sendMessage(chat_id, answer);
}

Il codice è così strutturato:

  • le variabili di inizializzazione.

  • la configurazione del webhook che può essere lasciata inalterata.

  • la funzione di invio messaggio che accetta come parametri l'id della chat in cui il bot dovrà scrivere e il testo del messaggio che comparirà all’utente, anche questa può essere lasciata inalterata.

  • la funzione doPost() che in Apps Script per default viene eseguita all’apertura dell’URL dell’applicazione e che passa un parametro con alcune informazioni ricevute dall’app mittente, dal quale in questo caso recuperiamo l’id della chat dove il bot invierà la risposta.

 

Fammi sapere cosa ne pensi e iscriviti al mio canale :)

 

Tags

Non ci sono tag per questo elemento
Michele Pisani

Michele Pisani

Sviluppatore Javascript ed esperto in Digital Analytics

L'esperienza nel settore Digital Analytics unita ad anni di sviluppo in Javascript ha trovato la massima espressione in Google Apps Script che mi ha permesso, con estrema facilità e poche righe di codice, di realizzare potenti applicazioni interattive e processi automatizzati integrati con i prodotti della G Suite.

Come contattarmi
scrivi un commento

10 Commenti

  1. Tuesday, April 27, 2021 alle ore 23:09 Daniele

    Ciao Michele, sto seguendo le tue lezioni e pian piano mi pare di progredire! Ho provato a creare un bot Telegram come da tuoi suggerimenti, ma una volta copiato ed incollato il codice, dove ho modificato token e url, l'esecuzione dello script mi rilascia questo errore: "Exception: Request failed for https://api.telegram.org returned code 400. Truncated server response: {"ok":false,"error_code":400,"description":"Bad Request: chat not found"} (use muteHttpExceptions option to examine full response)".
    Sicuramente sto sbagliando qualcosa, ma non capisco dove.

    var token = "qui ho inserito il token"; 
    var telegramUrl = "https://api.telegram.org/bot" + token;
    var webAppUrl = "https://script.google.com/macros/s/AKfycbzB_uSU2VCZ3MTlQGgw4hu8kWIE7a_8OA56I54CZI3xhN32kV0R6da0KX2i5Wo7YPRaPg/exec";

    function setWebhook() {
    var url = telegramUrl + "/setWebhook?url=" + webAppUrl;
    var response = UrlFetchApp.fetch(url);
    }

    function sendMessage(chat_id, text) {
    var url = telegramUrl + "/sendMessage?chat_id=" + chat_id + "&text="+ text;
    var response = UrlFetchApp.fetch(url);
    }

    function doPost(e) {
    var contents = JSON.parse(e.postData.contents);
    var chat_id = contents.message.from.id;
    var user = contents.message.chat.first_name + " " + contents.message.chat.last_name;
    var answer = "Ciao " + user + ". Benvenuto e grazie del tuo messaggio!";
    sendMessage(chat_id, answer);
    var text =contents.message.text;
    SpreadsheetApp.openById("1Et3TEY9E9XJ0x6bJCs1JMs_EBkVWGU8Jz0eWcXvTKlA").getSheetByName("Foglio1").appendRow([new Date(),chat_id, user, text])
    }



    Grazie per l'attenzione che mi dedicherai.

    Un saluto
    Daniele

    Rispondi a questo commento
  2. Tuesday, October 19, 2021 alle ore 16:42 Filippo

    Ciao Michele,
    complimenti davvero per il lavoro che stai portando avanti!
    Mi interessa molto l'argomento BOT telegram e relativi script. Vorrei implementare il BOT come una sorta di assistente personale per varie funzioni: dal mostrarmi un QRCODE di mio interesse ad altri dati/immagini/file.
    Vorrei riuscire a creare un menu dove, a seconda della voce cliccata, fa l'azione richiesta.
    Sono riuscito nella risposta statica e immagine, ma non trovo come creare un comando personalizzato

    Hai un tutorial ad hoc su questo ?

    Grazie e complimenti
    Ciao
    Filippo

    Rispondi a questo commento
  3. Friday, February 3, 2023 alle ore 12:56 franco

    pure io ho lo stesso problema nel dubbio cerca pure su stack overflow

    Rispondi a questo commento
  4. Friday, February 3, 2023 alle ore 12:56 franco

    pure io ho lo stesso problema nel dubbio cerca pure su stack overflow

    Rispondi a questo commento
  5. Sunday, February 12, 2023 alle ore 16:35 Angelo

    Complimenti per i tuoi tutorial sono molto semplici e anche pertinenti.

    Con questo metodo il bot ricerca la parola precisa e restituisce la colonna alla riga corrispondente il testo trovato....ma mettiamo caso che invece si volesse ricercare una parte del testo ad esempio 3 o 4 cocktail che hanno una parte del nome comune e quindi riportare tutti e 4 i risultati ....sarebbe possibile? oppure fare elencare una serie di proposte da scegliere per avere la ricetta corretta.

    Rispondi a questo commento
  6. Sunday, February 12, 2023 alle ore 16:36 Angelo

    Complimenti per i tuoi tutorial sono molto semplici e anche pertinenti.

    Con questo metodo il bot ricerca la parola precisa e restituisce la colonna alla riga corrispondente il testo trovato....ma mettiamo caso che invece si volesse ricercare una parte del testo ad esempio 3 o 4 cocktail che hanno una parte del nome comune e quindi riportare tutti e 4 i risultati ....sarebbe possibile? oppure fare elencare una serie di proposte da scegliere per avere la ricetta corretta.

    Rispondi a questo commento
  7. Sunday, February 12, 2023 alle ore 16:37 ANGELO

    Complimenti per i tuoi tutorial sono molto semplici e anche pertinenti.

    Con questo metodo il bot ricerca la parola precisa e restituisce la colonna alla riga corrispondente il testo trovato....ma mettiamo caso che invece si volesse ricercare una parte del testo ad esempio 3 o 4 cocktail che hanno una parte del nome comune e quindi riportare tutti e 4 i risultati ....sarebbe possibile? oppure fare elencare una serie di proposte da scegliere per avere la ricetta corretta.

    Rispondi a questo commento
  8. Saturday, June 3, 2023 alle ore 17:11 Luca

    Ciao Michele,
    complimenti davvero per i tuoi video tutorial!
    Ho provato a creare un bot Telegram seguendo i tuoi suggerimenti, ma una volta copiato ed incollato il codice, inserito il mio token ed effettuato il deployment se scrivo qualcosa nel bot non ricevo nessuna risposta. Quale può essere la causa?

    Rispondi a questo commento
  9. Saturday, June 3, 2023 alle ore 17:12 Luca

    Ciao Michele,
    complimenti davvero per i tuoi video tutorial!
    Ho provato a creare un bot Telegram seguendo i tuoi suggerimenti, ma una volta copiato ed incollato il codice, inserito il mio token ed effettuato il deployment se scrivo qualcosa nel bot non ricevo nessuna risposta. Quale può essere la causa?

    Rispondi a questo commento

Scrivi un commento

Il tuo indirizzo email non sarà pubblicato.I campi contrassegnati da un * sono obbligatori
Puoi utilizzare i seguenti tag nei commenti:
[bold]testo[/bold] se vuoi evidenziare un testo con il grassetto[code]function helloworld() { }[/code] se vuoi pubblicare una porzione di codice[url]https://www.appsscript.it[/url] se devi riferirti ad un indirizzo web