Telegram notification

How to create a script in this “function isian” using the onChange trigger. This script uses the onFormSubmit trigger, how to change it so that it can use the onchange trigger. I have data in a spreadsheet that uses a trigger on form submit in this script which is triggered from a google form, I want to change the trigger using the onChange trigger how do I do it or what does the script and where I place it, I’m still very new to this. Hope someone can help me?


var token = 'Masukan token yang didapat dari BotFather';
var telegramUrl = 'https://api.telegram.org/bot'+token;
var webAppUrl = 'masukan url server yang didapat dari publish web app'


//ini untuk mengaktifkan Server Bot nya
function setWebhook(){
  var url = telegramUrl+'/setWebhook?url='+webAppUrl;
  var response =   UrlFetchApp.fetch(url);
  
  Logger.log(response.getContentText())
}


function doPost(e){
  
  //masukan id google sheet tempat dimana menyimpan data toko
  var ss = SpreadsheetApp.getActiveSpreadsheet();
   
  //menangkap request dari server telegram
  var contents = JSON.parse(e.postData.contents);
  
  //variabel text digunakan untuk menyimpan text yang dikirim oleh user
  var text = contents.message.text;
  //variabel yang digunakan untuk menyimpan id percakapan dari user
  var id = contents.message.chat.id;
  
  //memberi respon jika text yang dikirim user adalah kata reg
  if(text == "reg"){
    
    var balasPesan = "terima kasih anda sudah terdaftar di layanan bot ini"
    //memasukan chat id panitia ke sheet chat_id pada baris 2 kolom 1	
    SpreadsheetApp.getActiveSpreadsheet().getSheetByName("chat_id").getRange(2,1).setValue(id)
    kirimPesan(id,balasPesan)
  
  }else{
    
   var pesan= "*Selamat datang di Menu PPDB* \n"
    +"Bot ini terdiri dari beberapa menu   : \n"
    +"a. Register layanan \n"
    +"Ketik : reg \n";
    kirimPesan(id,pesan,'markdown');
  }  
}


//fungsi ini digunakan untuk mengirim pesan
function kirimPesan(chatid, pesan, parseMode, replyMarkup) {
  var formData = {
     'chat_id': chatid,
     'text': pesan
  };
  
  if ( (typeof parseMode !== 'undefined') || (typeof parseMode !== null) )  {
    formData['parse_mode'] = parseMode;
  }
  
  if ( (typeof replyMarkup !== 'undefined') || (typeof replyMarkup !== null) )  {
    formData['reply_markup'] = replyMarkup;
  }
  
  var ret = request('sendMessage', formData);
  return ret;
}
  
function request(method,data){
  
  var options = {
    'method':'post',
    'contentType':'application/json',
    'payload':JSON.stringify(data)
  };
 

  var res = UrlFetchApp.fetch(telegramUrl+'/'+method,options)
  
}

function isian(e){
  var waktuDaftar = e.values[0]
  var nama = e.values[1]
  var smp = e.values[2]
  var jurusan = e.values[3]
  var noHp = e.values[4]
  
  
  var template = DriveApp.getFileById("Masukan id template document pendaftaran")
  var folderSimpanFile = DriveApp.getFolderById("Masukan id Folder yang digunakan untuk menyimpan file")
  //membuat copyan dari template dengan nama dari field yang di isikan pendaftar
  var copyTemplate = template.makeCopy(jurusan+" "+nama+" "+smp, folderSimpanFile)
  //membuka dokumen tersebut	
  var docPendaftar = DocumentApp.openById(copyTemplate.getId())
  //mendapatkan tag template untuk diganti dengan isian dari google form	
  var bodyDoc = docPendaftar.getBody()
  
  bodyDoc.replaceText("{{Nama}}", nama)
  bodyDoc.replaceText("{{SMP}}", smp)
  bodyDoc.replaceText("{{Jurusan}}", jurusan)
  //menyimpan dan menutup inputan dari pendaftar 
  docPendaftar.saveAndClose()
  //membuka dokumen dan merubahnya menjadi pdf
  var pdf = DocumentApp.openById(copyTemplate.getId()).getAs('application/pdf')
  //membuat link pdf nya
  var urlPdf = folderSimpanFile.createFile(pdf).getDownloadUrl()
  //mendapatkan chat id dari bot panitia ppdb
  var id = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("chat_id").getRange(2,1).getValue()
  
  //Mengirim pesan ke panitia ppdb ketika ada pendaftar
  var pesan= "Mohon untuk segera dikonfirmasi pendaftar  \n"
    +"Nama    : "+ nama+" \n"
    +"SMP     : "+ smp+"\n"
    +"Pilihan : "+ jurusan+"\n"
    +"WA      : wa.me/62"+noHp+"?text=*Assalamualikum%2CKami%20dari%20Panitia%20PPDB%20SMK%20Pemalang*%0ABerikut%20ini%20adalah%20bukti%20pendaftaran%20Anda%20%3A\n"
    +"Bukti   : "+ urlPdf+"\n"	    
    kirimPesan(id,pesan);
}

You can follow the steps below.

1/Go to Extensions > App Script

2/On the left hand side panel, choose “Triggers”.

image

3/Identify the trigger that is running your “isian” function, or if it does not exist, create one using this button on the bottom right.

image

4/Create a new onChange trigger by choosing the event type to be “on change”.

1 Like

thank you @ThinhDinh for responding, but I have tried this and it doesn’t work, the script must be changed so that it can use the trigger on change

It would help if you can post the logs here. What exact problem did Google Scripts report?

solved thanks @ThinhDinh for the response, the script should be changed to use the onchange trigger, because the current script is only for triggering form submission

1 Like

This topic was automatically closed 24 hours after the last reply. New replies are no longer allowed.