Bots de conversa de Telegram amb Google Apps Script

Bots de conversa Exemples Dades pràctiques   Recursos CITCEA
Google Apps Script Projectes Interacció   Inici

Generem un codi QR

Google té una utilitat per generar codis QR. Podem fer-la servir, per exemple, per codificar una adreça URL i enviar-la com a imatge (en forma de codi QR) a un xat de Telegram.

El generador de codis QR està a l'adreça https://chart.googleapis.com/chart i necessita els següents paràmetres:

Paràmetre/td> Descripció Exemple
chs Mides del codi QR en píxels
Dos valors, iguals, separats per una x
chs=250x250
cht Tipus de gràfic
qr en el nostre cas
cht=qr
chl Adreça URL que es vol codificar chl=https://www.google.com/

Per exemple, el codi QR corresponent a la pàgina que estàs llegint es demanaria així:

https://chart.googleapis.com/chart?chs=250x250&cht=qr&chl=https://recursos.citcea.upc.edu/telegram/gas/qr.html

En el següent tros de programa generem un codi QR amb l'adreça URL d'un script amb paràmetres:

function crear_qr(id_usuari){
  var  caption = "Entrada al seminari"; // Missatge que acompanya al codi 
  // scriptUrl seria l'adreça d'un script que validaria el codi  
  // Quan hem de fer servir & com a paràmetre d'un paràmetre, com en aquest cas, l'hem de codificar
  // sinó no ho interpreta correctament 
  var codiAnd = "%26";
  var url_script = scriptUrl +"?accio=valida" + codiAnd + "id=" + id_usuari ; 
  var qr = "https://chart.googleapis.com/chart?chs=250x250&cht=qr&chl=" + url_script; 
  var response = UrlFetchApp.fetch(qr); // Carrega la imatge corresponent a la url generada 
  var binaryData = response.getContent();  // La guarda com a dades binàries
  // La funció newBlob té tres paràmetres: les dades, el tipus de dades i el nom que li volem donar
  // carrega la imatge com a dades binaries en una variable
  var blob = Utilities.newBlob(binaryData, 'image/jpeg', 'QR'); 
  sendBlobFile(id_usuari,blob,caption); // Enviem la imatge al Telegram en format binari (BLOB) 
}

Atès que l'adreça del generador de codis té paràmetres, pot aparèixer un conflicte si l'adreça que volem codificar conté algun & (o sigui, si també té paràmetres). Caldrà substituir els & de l'adreça que es vol codificar pel seu codi per a http, és a dir %26.

El codi QR generat el podem enviar com a dades binàries (BLOB).

 

 

 

 

 

 

 

 

 

 

Llicència de Creative Commons
Aquesta obra d'Oriol Boix està llicenciada sota una llicència no importada Reconeixement-NoComercial-SenseObraDerivada 3.0.