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

Risponde in Modo Automatico agli Utenti

Bot di Telegram che Sceglie i Messaggi da un Foglio Google

Abbiamo visto in altri miei video come bastano 5 minuti per creare un semplice Bot di Telegram, come inviare immagini in automatico da parte del Bot e come salvare in un Foglio Google i messaggi che gli utenti scrivono nella chat.

In questo video voglio mostrarti come istruire il Bot in modo da rispondere in modo dinamico ai messaggi dell'utente, per farlo il Bot analizzerà il testo del messaggio ricevuto e cercherà in un Foglio Google la risposta appropriata da fornire.

Ho predisposto in uno Spreadsheet una lista di cocktail con i relativi ingredienti e le istruzioni per prepararli, ovviamente si tratta di un esempio e l’elenco non è esaustivo.

Lo scopo di questo bot è quello di ricevere in ingresso il nome di un drink e fornire all’utente le opportune informazioni per poterlo preparare.

Il nome del foglio dove ho inserito tali dati è 'Foglio2', il 'Foglio1' invece è attualmente vuoto e lo utilizzerò per salvare i messaggi che gli utenti scrivono nella chat, può essere molto utile ad esempio per verificare quale cocktail è più richiesto rispetto ad altri o per verificare se gli utenti richiedono qualcosa che non ho previsto e nel caso integrare la lista.

Spero che questo video ti sia piaciuto, nel prossimo tutorial sull'argomento ti mostrerò come ottenere queste informazioni in modo dinamico interrogando direttamente un servizio esterno, senza bisogno di scriverle in uno Spreadsheet. Ti invito pertanto a iscriverti al mio Canale YouTube se ancora non l'hai fatto e a lasciarmi un commento se hai un dubbio, un suggerimento o un argomento che ritieni interessante e che vorresti fosse trattato in tutorial.

Di seguito il codice mostrato nel video:

var token = getTokenId(); // ho nascosto il valore del token nel file token_id.gs per non mostrarlo a video
var telegramUrl = "https://api.telegram.org/bot" + token; 
var webAppUrl = "https://script.google.com/macros/s/TUO_ID_APPLICAZIONE/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 + ". Scrivi il nome di un cocktail e ti dirò come prepararlo!";
  var text = contents.message.text;

  var ssId = "SPREADSHEET_ID";
  var sh2 = SpreadsheetApp.openById(ssId).getSheetByName("Foglio2");
  var sh2range = sh2.getRange(1, 1, sh2.getLastRow(), sh2.getLastColumn());
  var sh2values = sh2range.getValues();
  var sh2values_len = sh2values.length;
  var cocktail_nome;
  for (i=0; i<sh2values_len; i++) {
    cocktail_nome = sh2values[i][0]+'';
    if (text.toLowerCase() == cocktail_nome.toLowerCase()) {
      answer = "Ingredienti: " + sh2values[i][1] + '.' + '%0A' + "Preparazione: " + sh2values[i][2];
      break;
    }
  }

  sendMessage(chat_id, answer);
  SpreadsheetApp.openById(ssId).getSheetByName("Foglio1").appendRow([new Date(), chat_id, user, text]);
}

Per il momento ti saluto e a presto, ciao ;)

Tags

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

0 Commenti

Non ci sono commenti

Nessuno ha ancora commentato questo articolo, fallo tu per primo!

scrivi un 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