Bots de conversa de Telegram amb Google Apps Script

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

Bot dins un grup

Si posem el nostre bot com a membre d'un grup de Telegram, aquest podrà rebre les comandes de tots els membres del grup. El bot no rebrà (a no ser que canviem la seva propietat de privadesa en el BotFather) els missatges de text que s'enviïn al grup, sí rebrà i intentarà processar totes les comandes (començades per /).

Si tenim pensat posar un bot dins d'un grup, hem de preveure com s'ha de comportar. Per exemple, si hi ha comandes que els usuaris poden posar a títol individual i la resposta només interessa a l'usuari, probablement convindra que aquesta s'enviï a Telegram amb l'identificador message.from.id i que arribin directament a un xat privat entre el bot i l'usuari. En canvi, hi pot haver altres comandes que sí siguin d'interès per a tot el grup; en quin cas caldrà enviar-les a message.chat.id perquè es mostrin a la finestra del grup.

Ens pot interessar saber el rol de cada usuari dins d'un grup per poder personalitzar les respostes del bot en funció del tipus d'usuari. Un usuari pot ser:

Rol Descripció
creator Usuari que ha creat el grup
admin Usuari que pot administrar el grup
member Membre del grup

Podem demanar a Telegram el rol d'un usuari dins un xat o grup amb aquesta comanda:

https://api.telegram.org/botIdBot/getChatMember?chat_id=chat_id&user_id=user_id

Però normalment ens interessarà fer-ho dins de l'script. Per a aquesta finalitat, podem fer servir aquesta funció:

function mira_rol(id,id_usuari){
  var url = telegramUrl + "/getChatMember?chat_id=" + id + "&user_id=" + id_usuari;
  var e = UrlFetchApp.fetch(url,{ muteHttpExceptions: true }); // Retorna en format JSON 
  var data = JSON.parse(e); // Assigna les dades pasades per Telegram en format JSON a una variable 
  var rol = data.result.status ; // Recuperem el parametre status 
  return rol ;  // Retornem el rol de l'úsuari dins del xat o grup 
}

 

 

 

 

 

 

 

 

 

 

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