Bots de conversa de Telegram amb Google Apps Script

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

Exemple de prova per a ordres POST

Sovint ens pot ser útil disposar d'un script bàsic que ens permeti saber que arriba una ordre POST de Telegram, a quina comanda correspon i els paràmetres que l'acompanyen. Aquest exemple serveix per a aquesta finalitat.

L'script que hi ha a continuació retorna a Telegram un missatge en el que s'indica quina és la comanda que s'ha rebut i els diferents paràmetres del missatge i el xat. Entre moltes altres aplicacions, pot ser útil per saber el nostre identificador d'usuari.

var token = "^^34328844:AAFIpk-e7j3UZtYQYQaTduf4hEhnDqIcNXI"; // API Token de Telegram 
var telegramUrl = "https://api.telegram.org/bot" + token;  // Url que comunica el nostre bot amb Telegram
function doPost(e){  // Funció que rep les dades que envia Telegram 
  var data = JSON.parse(e.postData.contents);  // Llegeix les dades rebudes per JSON i les guarda
  if (data.message){  // Si és una comanda normal
    var text = data.message.text;  // Comanda enviada
    var id = data.message.chat.id;  // Identificador de la finestra d'on prové el missatge 
    var id_usuari = data.message.from.id; // Identificador de l'usuari
    var id_missatge = data.message.message_id; // Identificador del missatge
    var lang = data.message.from.language_code ;  // Idioma de l'usuari 
    var nom_usr = data.message.from.first_name ;  // Nom de l'usuari
    var location = data.message.location;  // Localització de l'usuari (si es sap) 
  }
  var resposta = "La comanda que s'ha rebut és:\n";
  resposta = resposta + text + "\n\n";
  resposta = resposta + "id xat = " + id + "\n";
  resposta = resposta + "id usuari = " + id_usuari + "\n";
  resposta = resposta + "id missatge = " + id_missatge + "\n";
  resposta = resposta + "idioma = " + lang + "\n";
  resposta = resposta + "nom de l'usuari = " + nom_usr + "\n";
  sendText(id,resposta);  
}
function sendText(chatId,text_env,keyBoard){  // Funció que prepara per enviar un text o un teclat a Telegram 
  keyBoard = keyBoard || 0;
  if(keyBoard.inline_keyboard || keyBoard.keyboard){
    var data = {
      method: "post",
      payload: {
        method: "sendMessage",
        chat_id: String(chatId),
        text: text_env,
        parse_mode: "HTML",
        reply_markup: JSON.stringify(keyBoard)
      }
    }
  } else {
    var data = {
      method: "post",
      payload: {
        method: "sendMessage",
        chat_id: String(chatId),
        text: text_env,
        parse_mode: "HTML"
      }
    }
  }
  UrlFetchApp.fetch( telegramUrl + '/', data);
}

 

 

 

 

 

 

 

 

 

 

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