Clone of Bot Telegram Read Spreadsheets

const fetch = require('node-fetch');
const Papa = require('papaparse');
const TelegramBot = require('node-telegram-bot-api');

// Konfigurasi bot Telegram
const token = 'YOUR_TELEGRAM_BOT_API_TOKEN'; // Ganti dengan token bot Anda
const bot = new TelegramBot(token, { polling: true });

// URL ekspor CSV dari Google Spreadsheet
const DOC_ID = 'YOUR_GOOGLE_SHEET_DOC_ID';  // Ganti dengan DOCID spreadsheet Anda
const CSV_URL = `https://docs.google.com/spreadsheets/d/${DOC_ID}/export?format=csv`;

// Fungsi untuk mengambil dan memparse CSV
async function fetchData() {
  try {
    // Mengambil data CSV dari URL
    const response = await fetch(CSV_URL);
    const csvText = await response.text();

    // Mengonversi CSV ke format JSON
    const result = Papa.parse(csvText, {
      header: true, // Menandakan bahwa baris pertama adalah header
      skipEmptyLines: true, // Mengabaikan baris kosong
    });

    // Mengembalikan data hasil parsing
    return result.data;
  } catch (error) {
    console.error('Error fetching or parsing CSV:', error);
    return [];
  }
}

// Fungsi untuk mengirim data ke Telegram
async function sendDataToTelegram(chatId, data) {
  let message = 'Data dari Google Spreadsheet (CSV):\n\n';
  data.forEach((row) => {
    message += `${row['Nama']} - ${row['Nomor Telepon']}\n`; // Ganti dengan nama kolom yang sesuai
  });

  bot.sendMessage(chatId, message);
}

// Mendengarkan perintah dari bot Telegram
bot.onText(/\/getdata/, async (msg) => {
  const chatId = msg.chat.id;
  const data = await fetchData();
  if (data.length > 0) {
    await sendDataToTelegram(chatId, data);
  } else {
    bot.sendMessage(chatId, 'Tidak ada data yang ditemukan.');
  }
});

console.log('Bot is running...');

Views: 38

Created At: 2026-02-16 12:00:59

View Raw Download Clone