Postingan Blogger Melalui Bot Telegram

Postingan Blogger Melalui Bot Telegram


Bot Telegram dapat digunakan untuk membuat postingan otomatis ke channel, grup, maupun menyimpan data ke Google Spreadsheet. Pada tutorial ini, kita akan membuat bot Telegram menggunakan Google Apps Script, menghubungkannya dengan OAuth Google, menggunakan OAuth Playground, hingga proses deploy.

1. Membuat Bot Telegram dengan /newbot

Langkah pertama adalah membuat bot melalui Telegram.

Cara Membuat Bot

  1. Buka aplikasi Telegram.
  2. Cari akun resmi Telegram bernama @BotFather.
  3. Ketik perintah:
/newbot
  1. Masukkan nama bot.
  2. Masukkan username bot (harus diakhiri dengan bot).

Contoh:

namabotku_bot
  1. Setelah selesai, BotFather akan memberikan token API seperti berikut:
123456789:AAxxxxxxxxxxxxxxxxxxxx

Simpan token tersebut karena akan digunakan pada script.

2. Membuat Project Google Apps Script

Selanjutnya kita membuat project Apps Script.

Langkah-Langkah

  1. Buka Google Drive.
  2. Klik:
Baru → Lainnya → Google Apps Script
  1. Beri nama project misalnya:
TelegramBotPosting

3. Membuat Spreadsheet (Opsional)

Jika postingan ingin disimpan ke Spreadsheet:

  1. Buat Google Spreadsheet baru.
  2. Salin Spreadsheet ID dari URL.

Contoh URL:

https://docs.google.com/spreadsheets/d/1AbCdEfGhIjKlMnOp/edit

Maka ID-nya:

1AbCdEfGhIjKlMnOp

4. Menulis Script Telegram Bot

Ganti isi Code.gs dengan script berikut:

const TOKEN = "TOKEN_BOT_KAMU";
const TELEGRAM_URL = "https://api.telegram.org/bot" + TOKEN;

function sendMessage(chatId, text) {
const url = TELEGRAM_URL + "/sendMessage";

const payload = {
chat_id: chatId,
text: text
};

const options = {
method: "post",
contentType: "application/json",
payload: JSON.stringify(payload)
};

UrlFetchApp.fetch(url, options);
}

5. Mendapatkan Chat ID Telegram

Sebelum mengirim pesan, kita perlu mengetahui chat_id.

Caranya

  1. Buka chat bot Telegram.
  2. Kirim pesan apa saja ke bot.

Contoh:

halo
  1. Tambahkan fungsi berikut:
function getUpdates() {
const response = UrlFetchApp.fetch(
TELEGRAM_URL + "/getUpdates"
);

Logger.log(response.getContentText());
}
  1. Jalankan fungsi getUpdates.
  2. Buka:
View → Logs
  1. Cari bagian:
"chat":{"id":123456789}

Itulah Chat ID Anda.

6. Mengirim Postingan ke Telegram

Tambahkan fungsi:

function kirimPostingan() {
const chatId = "123456789";

sendMessage(
chatId,
"Halo, ini postingan otomatis dari Google Apps Script!"
);
}

Jalankan fungsi kirimPostingan().

Jika berhasil, pesan akan muncul di Telegram.

7. Membuat OAuth Consent Screen

Agar Apps Script dapat menggunakan layanan Google secara aman, kita perlu membuat OAuth Consent Screen.

Langkah-Langkah

  1. Buka:
  2. Buat Project baru.
  3. Pilih:
APIs & Services → OAuth consent screen
  1. Pilih:
External
  1. Isi data aplikasi:
  • App name
  • User support email
  • Developer email
  1. Klik:
Save and Continue
  1. Tambahkan scope jika diperlukan.
  2. Simpan hingga selesai.

8. Mengaktifkan API Google

Masih di Google Cloud Console:

  1. Masuk ke:
APIs & Services → Library
  1. Aktifkan API yang diperlukan, misalnya:
  • Google Sheets API
  • Google Drive API

9. Menggunakan OAuth Playground

OAuth Playground digunakan untuk mendapatkan Access Token.

Langkah-Langkah

  1. Buka:
  2. Klik ikon gear ⚙.
  3. Centang:
Use your own OAuth credentials
  1. Masukkan:
  • OAuth Client ID
  • OAuth Client Secret
  1. Pilih scope, misalnya:
https://www.googleapis.com/auth/spreadsheets
  1. Klik:
Authorize APIs
  1. Login akun Google.
  2. Klik:
Exchange authorization code for tokens
  1. Akan muncul:
access_token
refresh_token

Simpan token tersebut.

10. Membuat Webhook Telegram

Webhook digunakan agar Telegram dapat mengirim data ke Apps Script.

Tambahkan script berikut:

function setWebhook() {
const url = TELEGRAM_URL + "/setWebhook?url=" + WEB_APP_URL;

const response = UrlFetchApp.fetch(url);

Logger.log(response.getContentText());
}

11. Membuat Fungsi doPost(e)

Tambahkan:

function doPost(e) {
const data = JSON.parse(e.postData.contents);

const chatId = data.message.chat.id;
const text = data.message.text;

sendMessage(chatId, "Pesan diterima: " + text);

return ContentService.createTextOutput("OK");
}

Fungsi ini akan menerima pesan dari Telegram secara otomatis.

12. Deploy Google Apps Script

Sekarang kita deploy project agar online.

Cara Deploy

  1. Klik:
Deploy → New deployment
  1. Pilih:
Web App
  1. Atur:

Execute as

Me

Who has access

Anyone
  1. Klik:
Deploy
  1. Copy URL Web App.

Contoh:

https://script.google.com/macros/s/AKfycbxxxx/exec

13. Menghubungkan Webhook

Masukkan URL deploy ke variabel:

const WEB_APP_URL =
"https://script.google.com/macros/s/AKfycbxxxx/exec";

Lalu jalankan:

setWebhook();

Jika berhasil muncul:

{"ok":true,"result":true}

14. Testing Bot

Coba kirim pesan ke bot:

Tes

Bot akan membalas:

Pesan diterima: Tes

15. Struktur Project Akhir

Contoh struktur sederhana:

const TOKEN = "TOKEN_BOT";
const WEB_APP_URL = "URL_DEPLOY";

const TELEGRAM_URL =
"https://api.telegram.org/bot" + TOKEN;

function sendMessage(chatId, text) {
const url = TELEGRAM_URL + "/sendMessage";

const payload = {
chat_id: chatId,
text: text
};

const options = {
method: "post",
contentType: "application/json",
payload: JSON.stringify(payload)
};

UrlFetchApp.fetch(url, options);
}

function doPost(e) {
const data = JSON.parse(e.postData.contents);

const chatId = data.message.chat.id;
const text = data.message.text;

sendMessage(chatId, "Pesan diterima: " + text);

return ContentService.createTextOutput("OK");
}

function setWebhook() {
UrlFetchApp.fetch(
TELEGRAM_URL +
"/setWebhook?url=" +
WEB_APP_URL
);
}

16. Tips Penting

Jangan Membuat Deployment Baru Terus-Menerus

Gunakan:

Manage Deployments → Edit

Agar URL webhook tidak berubah.

Gunakan /exec, Bukan /dev

Webhook Telegram harus menggunakan URL:

/exec

bukan:

/dev

Set Access Menjadi “Anyone”

Jika tidak, Telegram tidak dapat mengakses Apps Script.

Beberapa masalah umum deployment dan webhook juga sering dibahas komunitas Google Apps Script di Reddit.

Iklan

sponsor

💬 Kolom Komentar

💬 Komentar | Tanya

Memuat komentar...