บทความนี้จะแนะนำวิธีสร้างบอท Discord เพื่อส่งข้อความแจ้งเตือนตารางงาน โดยวันนี้เราจะแจ้งเตือนงานของวันพรุ่งนี้ตอน 22:00 น. และแจ้งเตือนซ้ำอีกครั้งในเวลา 07:00 น. สิ่งที่ต้องมี บัญชี Discord และ Discord Server ที่คุณเป็น Admin Google Sheets สำหรับเก็บตารางงาน Google Apps Script สำหรับสร้างโค้ดแจ้งเตือน Webhook URL สำหรับส่งข้อความไปยัง Discord channel ขั้นตอนการทำ 1. สร้าง Webhook บน Discord เปิด Discord และไปที่เซิร์ฟเวอร์ที่ต้องการ เลือกช่องที่ต้องการให้บอทแจ้งเตือน คลิกไอคอนการตั้งค่า (รูปเฟือง) ข้างชื่อช่อง ไปที่ Integrations > Webhooks > Create Webhook ตั้งชื่อ Webhook (เช่น "Task Reminder Bot" หรือ "Schedule Bot") คัดลอก URL ของ Webhook คลิก Save 2. เตรียมข้อมูลตารางงานใน Google Sheets สร้าง Google Sheets ใหม่ เพิ่มคอลัมน์ดังนี้: A: วันที่ (Date) B: เวลา (Time) C: ตารางงาน (Task) D: รายละเอียด (Details) ใน Google Sheets: คอลัมน์ A (วันที่): เลือกแถบเมนู "แทรก" > "เมนูแบบเลื่อนลง" > เปลี่ยน "เกณฑ์" เป็น "วันที่ที่ถูกต้อง" (เพื่อเลือกวันที่จากปฏิทิน) คอลัมน์ B (เวลา): เลือกแถบเมนู "รูปแบบ" > "ข้อความธรรมดา" (เพื่อฟอร์แมตเวลาที่ส่งข้อความไม่เพี้ยน) หมายเหตุ: หากต้องการความสะดวก สามารถสร้าง Google Form เพื่อให้ผู้ใช้กรอกข้อมูลได้ง่ายขึ้น แต่ต้องเลื่อนคอลัมน์ในโค้ด เนื่องจากในกรณีนี้คอลัมน์วันที่จะเริ่มที่คอลัมน์ B แทนที่จะเป็นคอลัมน์ A 3. เขียน Google Apps Script เปิด Google Sheets แล้วไปที่ Extensions > Apps Script เพิ่มโค้ดต่อไปนี้: ================================== function sendDiscordNotification(message) { var webhookUrl = 'https://discord.com/api/webhooks/your_webhook_url'; // แทนที่ด้วย URL ของคุณ var payload = JSON.stringify({ content: message }); var options = { method: 'post', contentType: 'application/json', payload: payload, }; UrlFetchApp.fetch(webhookUrl, options); } function sendDailyScheduleNotification() { var sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet(); var data = sheet.getDataRange().getValues(); var today = new Date(); today.setHours(0, 0, 0, 0); let scheduleList = ''; for (let i = 1; i < data.length; i++) { let scheduleDate = new Date(data[i][0]); // ถ้าใช้ Google Form แก้เป็น [1] สำหรับวันที่ scheduleDate.setHours(0, 0, 0, 0); if (scheduleDate.getTime() === today.getTime()) { let time = data[i][1]; // ถ้าใช้ Google Form แก้เป็น [2] สำหรับเวลา let task = data[i][2]; // ถ้าใช้ Google Form แก้เป็น [3] สำหรับตารางงาน let details = data[i][3]; // ถ้าใช้ Google Form แก้เป็น [4] สำหรับรายละเอียด scheduleList += `เวลา: ${time} - ตารางงาน: ${task}\nรายละเอียด: ${details}\n\n`; } } if (scheduleList) { sendDiscordNotification(`🗓️ ตารางงานวันนี้:\n\n${scheduleList}`); } } function sendTomorrowScheduleNotification() { var sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet(); var data = sheet.getDataRange().getValues(); var today = new Date(); today.setHours(0, 0, 0, 0); let tomorrow = new Date(today); tomorrow.setDate(tomorrow.getDate() + 1); let scheduleList = ''; for (let i = 1; i < data.length; i++) { let scheduleDate = new Date(data[i][0]); // ถ้าใช้ Google Form แก้เป็น [1] สำหรับวันที่ scheduleDate.setHours(0, 0, 0, 0); if (scheduleDate.getTime() === tomorrow.getTime()) { let time = data[i][1]; // ถ้าใช้ Google Form แก้เป็น [2] สำหรับเวลา let task = data[i][2]; // ถ้าใช้ Google Form แก้เป็น [3] สำหรับตารางงาน let details = data[i][3]; // ถ้าใช้ Google Form แก้เป็น [4] สำหรับรายละเอียด scheduleList += `เวลา: ${time} - ตารางงาน: ${task}\nรายละเอียด: ${details}\n\n`; } } if (scheduleList) { sendDiscordNotification(`📅 ตารางงานสำหรับวันพรุ่งนี้:\n\n${scheduleList}`); } } ================================== หมายเหตุ: ในโค้ดด้านบน เมื่อคุณสร้าง Google Sheet จาก Google Form จะต้องเลื่อนคอลัมน์ในโค้ดตามนี้: วันที่ (Date) จะอยู่ที่คอลัมน์ B (data[i][1]) เวลา (Time) จะอยู่ที่คอลัมน์ C (data[i][2]) ตารางงาน (Task) จะอยู่ที่คอลัมน์ D (data[i][3]) รายละเอียด (Details) จะอยู่ที่คอลัมน์ E (data[i][4]) ================================== ================================== 4. ตั้งค่า Trigger สำหรับฟังก์ชันอัตโนมัติ ในหน้า Google Apps Script คลิกที่ไอคอนรูปนาฬิกา (Triggers) ในเมนูด้านซ้าย คลิก "Add Trigger" ที่มุมขวาล่าง ตั้งค่า Trigger สำหรับ sendDailyScheduleNotification: Choose which function to run: sendDailyScheduleNotification Select event source: Time-driven Select type of time-based trigger: Day timer Select time of day: 7:00 AM to 8:00 AM คลิก Save เพิ่ม Trigger อีกอันสำหรับ sendTomorrowScheduleNotification: Choose which function to run: sendTomorrowScheduleNotification Select event source: Time-driven Select type of time-based trigger: Day timer Select time of day: 10:00 PM to 11:00 PM คลิก Save 5. การยืนยันสิทธิ์และทดสอบบอท Discord ขั้นตอนการยืนยันสิทธิ์ (Verify): เมื่อคุณบันทึก (Save) Trigger ครั้งแรก Google จะขอให้คุณอนุญาตการเข้าถึงสคริปต์ของคุณเพื่อให้สามารถทำงานได้ โดยมีขั้นตอนดังนี้: หลังจากคลิก Save เมื่อตั้งค่า Trigger ครั้งแรก ระบบจะขอให้คุณเข้าสู่ระบบด้วยบัญชี Google ที่ใช้สร้างสคริปต์ จะปรากฏหน้าต่างแจ้งว่า "Google hasn't verified this app" (แอปนี้ยังไม่ได้รับการตรวจสอบจาก Google) ให้คุณคลิกที่ลิงก์ "Advanced" (ขั้นสูง) ที่อยู่มุมล่างซ้ายของหน้าต่าง จากนั้นให้คลิกที่ "Go to [ชื่อโปรเจกต์ของคุณ] (ไม่ปลอดภัย)" เพื่อดำเนินการต่อ ระบบจะขอให้คุณอนุญาตการเข้าถึงสำหรับสคริปต์นี้ ให้เลือก "Allow" (อนุญาต) เพื่อให้สคริปต์สามารถเข้าถึง Google Sheets และทำการส่งข้อมูลไปยัง Discord ผ่าน Webhook ได้ การทดสอบฟังก์ชัน: หลังจากยืนยันสิทธิ์เรียบร้อยแล้ว คุณสามารถทดสอบฟังก์ชันได้โดย: เปิด Google Apps Script (Script Editor) จาก Google Sheets ของคุณ ในแถบตัวแก้ไข (ตัวแก้ไขสคริปต์) ให้กดเลือกฟังก์ชันที่ต้องการทดสอบ เช่น sendDailyScheduleNotification หรือ sendTomorrowScheduleNotification คลิกปุ่ม "เรียกใช้" (Run) ที่อยู่ด้านบน ตรวจสอบว่าบอทส่งข้อความแจ้งเตือนไปยัง Discord Channel ตามที่กำหนดไว้หรือไม่ 6. การใช้งานจริง: เพิ่มข้อมูลตารางงานใน Google Sheets ตามรูปแบบที่กำหนดไว้ หลังจากตั้งค่า Trigger และทดสอบฟังก์ชันเรียบร้อยแล้ว ไม่จำเป็นต้องเรียกใช้ฟังก์ชันด้วยตนเองอีก ระบบจะทำงานอัตโนมัติตามเวลาที่กำหนดไว้ใน Trigger โดยจะส่งการแจ้งเตือนไปยัง Discord ตามเวลาที่ตั้งไว้ หากทำตามขั้นตอนทั้งหมดนี้ คุณจะได้บอท Discord ที่คอยแจ้งเตือนตารางงานรายวันโดยอัตโนมัติ ซึ่งจะช่วยให้คุณไม่พลาดงานสำคัญและสามารถจัดการตารางเวลาได้อย่างมีประสิทธิภาพ ภาพปกโดย Gerd Altmann from Pixabay ภาพประกอบโดยผู้เขียน เปิดประสบการณ์ความบันเทิงที่หลากหลายสุดปัง บน App TrueID โหลดเลย ฟรี !