Telegram, GoogleScript e Discogs.. lo facciamo in classe?

Mi capita sempre più spesso che professori contaminanti e contaminati dall’innovazione, mi chiedano di preparare tutorial in classe per l’uso di Telegram e i suoi bot.

Se non si hanno delle basi di programmazione di php, python e via dicendo, è molto complicato instaurare un percorso virtuoso. Specie se parliamo di ragazzi del biennio superiore.

Ho trovato in rete questo bel post e ho pensato di fare una versione derivata e personalizzata per un altro argomento.

I passaggi logici sono (riprendono il post in inglese di sopra a cui potete far riferimento):

1) crei un bot con Botfather copiandoti il token (/newbot e dai un nome visualizzato e username)
2) copia incolla il codice del google script in un tuo nuovo script (clicca qui) e lo rendi applicazione eseguibile dal menu (Pubblica –> distribuisci come applicazione web –> scegli a chiunque, anche anonimi e fai ok. Avrai il link dell’app)
3) attivi il webhook copiando il link di attivazione nel browser (con token punto 1) e il link del punto 2) esempio https://api.telegram.org/bot{TOKEN}/setWebHook?url={WEB_APP_URL}

Lo script che ho indicato come esempio, si collega al database di discogs (in licenza opendata CC0), e interroga per artista.
Per farlo basta scrivere: /artista mina (cioè il comando seguito da spazio e dall’artista).
Vediamo il codice google che differisce dall’esempio del post originale su citato:

var messaggio=msg.text; //definisco una variabile
if (messaggio.indexOf(‘/artista ‘) >= 0) { //controllo che l’utente digiti /artista
var newmsg=messaggio.replace(‘/artista ‘,”); //cancello /artista+spazio
//registrati su www.discogs.com e crea la tua app su https://www.discogs.com/it/settings/developers sostituendo la XXXXXX nell’url qui sotto
var url = ‘https://api.discogs.com/database/search?q=’+newmsg+’&token=XXXXXX’;
var data = UrlFetchApp.fetch(url); //prendo i dati di risposta dal sito
var posts = JSON.parse(data); // e faccio il parsing del JSON

var quote = ‘Artista: ‘ + posts.results[0][‘title’]+’‘; //prendo il primo nodo nel risultato con il tag title

var url2=posts.results[0][‘resource_url’]; //prendo l’url del primo risultato
var data2 = UrlFetchApp.fetch(url2); //mi collego all’url del punto precedente
var posts2 = JSON.parse(data2); //faccio il parsing di risposta dell’url
quote +=’\n’+posts2.profile; //prendo i dati dal profilo artista
var cleanContent = posts.results[0][‘uri’].replace(/<(?:.|\n)*?>/gm, “”).replace(/\n/gm, “”); //pulisco il codice da spazi, a capo etc

quote +=’\nLink: https://www.discogs.com/it’+cleanContent; //fornisco il link all’artista come risultato

//impacchetto la risposta per mandarla a telegram. quindi testo in html, usando il metodo SendMessage per l’utente (userid) che ha fatto la richiesta (chat_id)
var payload = {
‘method’: ‘sendMessage’,
‘chat_id’: String(chatId),
‘text’: quote,
‘parse_mode’: ‘HTML’
}
//modalità post inviando array costruito qui sopra (payload)
var data = {
“method”: “post”,
“payload”: payload
}

// Replace with your token
var API_TOKEN = ”; // incolla qui il token ricevuto da botfather

Prima di farlo vuoi vedere come funziona? cerca su Telegram opendatamaterabot
Da fare in classe nei superiori per far capire ai ragazzi cosa stanno perdendo della vita che va avanti..

Potrebbero interessarti anche...

Rispondi