พลังที่แท้จริงเกิดขึ้นเมื่อเรานำ Telegram Bot มาเชื่อมกับ Google Sheet เช่น ให้ผู้ใช้พิมพ์บันทึกข้อมูลลง Sheet ผ่านแชท หรือสอบถามข้อมูลจาก Sheet ได้ทันที บทความนี้จะสอนทำระบบนี้ทีละขั้น ═══════════════════════════════════════ 📌 1. ภาพรวมระบบ ═══════════════════════════════════════ เราจะสร้างบอทที่: • รับข้อความจากผู้ใช้ (ผ่าน Webhook / doPost) • บันทึกข้อความลง Google Sheet • ดึงข้อมูลจาก Sheet มาตอบกลับได้ องค์ประกอบ: • Telegram Bot → ช่องทางคุยกับผู้ใช้ • Google Apps Script → ตัวประมวลผล (doPost) • Google Sheet → ฐานข้อมูล *** ต้องตั้ง Webhook ให้ชี้มาที่ URL ของ GAS Web App ก่อน (ดูบทความ Webhook) *** ═══════════════════════════════════════ 📥 2. บันทึกข้อความที่ผู้ใช้ส่งลง Sheet ═══════════════════════════════════════
javascript
function doPost(e) {
  var update = JSON.parse(e.postData.contents);
  var chatId = update.message.chat.id;
  var name = update.message.from.first_name;
  var text = update.message.text;

  // บันทึกลง Sheet
  var sheet = SpreadsheetApp.openById("SHEET_ID").getSheetByName("logs");
  sheet.appendRow([new Date(), chatId, name, text]);

  // ตอบกลับยืนยัน
  sendTelegram(chatId, "บันทึกข้อความของคุณแล้ว ✅");
  return ContentService.createTextOutput("ok");
}

function sendTelegram(chatId, text) {
  var token = "วาง_BOT_TOKEN";
  var url = "https://api.telegram.org/bot" + token + "/sendMessage";
  UrlFetchApp.fetch(url, {
    "method": "post",
    "payload": { "chat_id": chatId, "text": text }
  });
}
เตรียม Sheet: สร้างชีตชื่อ "logs" หัวคอลัมน์ = เวลา, chatId, ชื่อ, ข้อความ ═══════════════════════════════════════ 📤 3. ดึงข้อมูลจาก Sheet มาตอบกลับ ═══════════════════════════════════════ ตัวอย่าง: ผู้ใช้พิมพ์ /count บอทตอบจำนวนแถวข้อมูลใน Sheet
javascript
function doPost(e) {
  var update = JSON.parse(e.postData.contents);
  var chatId = update.message.chat.id;
  var text = update.message.text;

  var sheet = SpreadsheetApp.openById("SHEET_ID").getSheetByName("logs");

  if (text == "/count") {
    var count = sheet.getLastRow() - 1;   // ลบแถวหัวตาราง
    sendTelegram(chatId, "มีข้อมูลทั้งหมด " + count + " รายการ");
  } else if (text == "/last") {
    // ดึงข้อมูลแถวล่าสุด
    var last = sheet.getLastRow();
    var row = sheet.getRange(last, 1, 1, 4).getValues()[0];
    sendTelegram(chatId, "ล่าสุด: " + row[2] + " พิมพ์ว่า " + row[3]);
  }

  return ContentService.createTextOutput("ok");
}
═══════════════════════════════════════ 🔍 4. ค้นหาข้อมูลใน Sheet ตามคำค้น ═══════════════════════════════════════ ตัวอย่าง: ผู้ใช้พิมพ์ "ค้นหา สมชาย" บอทหาชื่อใน Sheet
javascript
function searchSheet(chatId, keyword) {
  var sheet = SpreadsheetApp.openById("SHEET_ID").getSheetByName("logs");
  var data = sheet.getDataRange().getValues();

  var results = [];
  for (var i = 1; i < data.length; i++) {
    // ค้นในคอลัมน์ชื่อ (index 2)
    if (String(data[i][2]).indexOf(keyword) !== -1) {
      results.push(data[i][2] + ": " + data[i][3]);
    }
  }

  var reply = results.length > 0
    ? "พบ " + results.length + " รายการ:\n" + results.join("\n")
    : "ไม่พบข้อมูล";

  sendTelegram(chatId, reply);
}
═══════════════════════════════════════ 📊 5. ส่งแจ้งเตือนจาก Sheet เข้ากลุ่ม (สรุปรายวัน) ═══════════════════════════════════════ ตั้ง Trigger ให้รันตามเวลา แล้วสรุปข้อมูลจาก Sheet ส่งเข้ากลุ่ม
javascript
function dailyReport() {
  var sheet = SpreadsheetApp.openById("SHEET_ID").getSheetByName("logs");
  var count = sheet.getLastRow() - 1;

  var groupChatId = "-1001234567890";  // chat id ของกลุ่ม (ติดลบ)
  sendTelegram(groupChatId, "📊 สรุปวันนี้: มีข้อความ " + count + " รายการ");
}
วิธีตั้งให้รันอัตโนมัติ: ในหน้า Apps Script ไปที่ Triggers (⏰) → Add Trigger → เลือกฟังก์ชัน dailyReport → ตั้งเวลา (เช่น ทุกวัน 18:00) ═══════════════════════════════════════ ✅ 6. สรุป ═══════════════════════════════════════ • เชื่อม Telegram + GAS + Sheet = ระบบบันทึก/สอบถามข้อมูลผ่านแชท • doPost รับข้อความ → appendRow บันทึกลง Sheet • อ่าน Sheet ด้วย getValues / getRange แล้วตอบกลับ • แยกทำงานตามคำสั่ง (/count, /last, ค้นหา) • ใช้ Trigger ส่งรายงานอัตโนมัติตามเวลา จำไว้: Telegram + Sheet = สร้างระบบจัดการข้อมูลผ่านแชทได้ฟรี ไม่ต้องมีเซิร์ฟเวอร์ 🚀