Menghubungkan Google Sheets dengan Bot Telegram

Bot Telegram adalah satu satu tool yang sangat handal. Kita bisa melakukan berbagai hal dengannya. Seperti reminding tool, remote control, bahkan input tool for IoT.

Kita akan membahas bagaimana caranya agar setiap data yang di submit dari Google Form bisa dikirim ke Bot Telegram.

Hal yang dibutuhkan:

  1. akun gmail (untuk pembuatan google form dan google spreadsheet).
  2. Bot Telegram (API bot nya harus dicatat ya)

Pertama kita harus membuat google spreadsheet dlu. Eh, bebas sih. mau bkin Google Form dulu atau google spreadsheet. Setelah itu, masuk ke google Spreadsheet. Klik menu “Script editor” yang ada pada menu tool

setelah itu kita akan masuk ke Google App Script. Disinilah kita akan membuat sebuah script yang berfungsi untuk memproses koneksi antara Google Spreadsheet dengan Bot Telegram. illustrasi hubungan koneksi antara Google Form, google Spreadsheet dan Bot Telegram adalah sebagai berikut :

Jadi, pertama kita harus membuat script yang berfungsi untuk mengirim data dari spreadsheet ke bot Telegram. Untuk scriptnya bisa lansung ci copy saja ya geng

var token = “6451716395:AAGDOwLxdjnnQ_QhsahMI-oaspyLBfW4DCJwo”;  // Ini adalah API dari Bot Telegram
var url = “https://api.telegram.org/bot”+ token;
var webAppUrl = “https://script.google.com/macros/s/AKfycbx9B_zF-Er8BXxb_iNBTsiMtqP-SVvx6pnopeO_BmR_nMU_lHU/exec”;
var ssId = “1AMt2Wy4hWRKg1R6TURQL0ShXhgHMRIcBgNU6mT1X9Co”; // Ini adalah ID dari google Sheet

ID google sheet didapat dari sini :

function getMe() {
var response = UrlFetchApp.fetch(url + “/getMe”);
Logger.log(response.getContentText());
}

function getUpdates() {
var response = UrlFetchApp.fetch(url + “/getUpdates”);
Logger.log(response.getContentText());
}

function setWebhook() {
var response = UrlFetchApp.fetch(url + “/setWebhook?url=” + webAppUrl);
Logger.log(response.getContentText());
}

function sendText(id, text) {  >> Fungsi ini berfungsi untuk mengirimkan data ke bot telegram
var response = UrlFetchApp.fetch(url + “/sendMessage?chat_id=” + id + “&text=” + encodeURIComponent(text));
Logger.log(response.getContentText());
}

function doGet (e) {
return HtmlService.createHtmlOutput(“hello”+ JSON.stringify(e));
}

function doPost(e){
var contents = JSON.parse(e.postData.contents);
GmailApp.sendEmail(Session.getEffectiveUser().getEmail(), “Bot Telegram Updates”, JSON.stringify(contents, null, 4));  Ini berfungsi untuk mengirim data inputan dari gform ke email kita
var id = “229438652”;
var nomor_hp = contents.Nomor_Hp;
var name = contents.Nama_lengkap;
var waktu = contents.Timestamp;
var jk = contents.Jenis_Kelamin;

sendText(id, “Hello ” + name + “\nNomor HP kamu : “+nomor_hp + “\nWaktu Submit : “+ waktu + “\nJenis kelamin : ” + jk);

//SpreadsheetApp.openById(ssId).appendRow([new Date(),id,name,text,contents]); // Ini digunakan jika ingin menginput data ke spreadsheet dari bot telegram
}

Ada satu hal yang penting, kita harus menambahkn add on “Trigger and send” di Google Sheet kita. fungsi add on ini adalah menjalankan script ini setiap ada perubahan atau setiap ada submit baru dari google form

Ini contoh add on Trigger and Send sudah ditambahkan. Jika sudah ditambahkan, maka kita bisa klik configure

Setelah itu atur trigger data nya sesuai kebutuhan

Masukan link Web app nya URL yang mau dkirim data dari Gform tadi

Setelah itu, coba submit data dari form-nya

Sumber:
1. aprogramming.com/2015/07/18/membuat-bot-telegram/

2. https://www.youtube.com/watch?v=mKSXd_od4Lg

One thought to “Menghubungkan Google Sheets dengan Bot Telegram”

  1. Gan, kalo ini apa yang salah?
    function doPost(e) {
    var contents = JSON.parse(e.postData.contents);
    var chat_id = contents.message.from.id
    var text = contents.message.text

    Error
    TypeError: Cannot read property ‘postData’ of undefined
    doPost @ Kode.gs:22

    semua eksekusi doPost gagal

    thx sebelumnya

Leave a Reply

Your email address will not be published. Required fields are marked *