Notifikasi Bot Telegram
Penjelasan data notifikasi & cara membuat notifikasi lebih ramah
Ringkasan gabungan dari dua jawaban terakhir: arti singkatan UTC, dan makna objek event (trigger) dari Google Apps Script yang sering tampil saat bot mengirim notifikasi.
Topik 1 — Apa itu UTC?
- UTC = Coordinated Universal Time, standar waktu global sebagai acuan internasional.
- Sebanding dengan GMT tapi lebih presisi karena berbasis jam atom.
- Zona waktu lokal dinyatakan relatif terhadap UTC, misal WIB = UTC+7.
Topik 2 — Event (trigger) Google Apps Script: apa yang muncul di notifikasi
Ketika script dijalankan otomatis lewat time-driven trigger, Google Apps Script menyediakan objek event (sering disingkat e) berisi detail waktu dan metadata trigger. Jika kamu mengirimkan objek ini ke Telegram tanpa pemrosesan, yang tampil adalah representasi mentah seperti contoh di notifikasi.
Subtopik — Penjelasan tiap field
- authMode — tingkat izin saat script berjalan (contoh: FULL artinya akses penuh).
- hour, minute, second, day-of-month, month, year — komponen waktu ketika trigger aktif (dalam zona waktu yang tercantum pada
timezone). - week-of-year — nomor minggu ke berapa di tahun tersebut.
- day-of-week — biasanya 1=Senin sampai 7=Minggu.
- timezone — zona waktu acuan, misal
UTC. - triggerUid — id unik trigger.
Topik 3 — Kenapa objek mentah muncul di Telegram?
- Karena script mengirim objek
eapa adanya (misalJSON.stringify(e)), sehingga semua properti tampil tanpa format. - Biasanya kita ingin menampilkan pesan yang lebih ramah manusia seperti tanggal dan waktu terformat, bukan seluruh objek mentah.
Topik 4 — Cara memperbaiki & contoh script
Solusi ringkas: ambil waktu dari objek event atau dari new Date(), konversi ke zona lokal (misal WIB = UTC+7), format menjadi string yang mudah dibaca, lalu kirim ke Telegram.
Contoh Google Apps Script (format ke WIB dan kirim notifikasi Telegram)
function sendTelegramFriendly(e){
// Ambil waktu sekarang agar konsisten, atau gunakan konstruktor dari e jika perlu
const nowUtc = new Date();
// Konversi ke WIB (UTC+7)
const utcMs = nowUtc.getTime();
const offsetMs = 7 * 60 * 60 * 1000; // +7 jam
const wib = new Date(utcMs + offsetMs);
// Format sederhana: 21 Sep 2025 14:58 WIB
const opts = { year:'numeric', month:'short', day:'2-digit', hour:'2-digit', minute:'2-digit', second:'2-digit', hour12:false };
const formatted = Utilities.formatDate(wib, "GMT+7", "dd MMM yyyy HH:mm:ss 'WIB'");
const message = `Notifikasi otomatis\nWaktu: ${formatted}\nTrigger ID: ${e && e.triggerUid ? e.triggerUid : '–'}`;
// Kirim ke Telegram (ganti BOT_TOKEN dan CHAT_ID)
const BOT_TOKEN = 'TOKEN_BOT';
const CHAT_ID = 'CHAT_ID';
const url = `https://api.telegram.org/bot${BOT_TOKEN}/sendMessage`;
const payload = { chat_id: CHAT_ID, text: message };
const options = { method:'post', payload: payload };
UrlFetchApp.fetch(url, options);
}
Catatan: jika kamu menggunakan properti waktu dari e (misal e.year, e.hour), pastikan memperlakukan nilainya sebagai angka dan gabungkan menjadi objek Date jika diperlukan.
Topik 5 — Praktik baik & keamanan
- Jangan kirim data sensitif mentah ke chat publik; filter dan redaksi jika perlu.
- Gunakan
Utilities.formatDateuntuk menghindari kebingungan zona waktu. - Catat
triggerUiduntuk debugging bila trigger ganda muncul.
Comments
Post a Comment