[Discord Bot] เมื่อทีม Android Developer@TDG นิมนต์พระมหาไพรวัลย์ให้มาเตือนทำ Code Review 3 เวลาหลังอาหาร สภาพ!
สอนวิธีการสร้าง Discord Bot พส. ง่ายๆ ด้วย Google Cloud Platform ล้วนๆเลยจ้า
ก่อนอื่นต้องกราบขออภัยผู้อ่านทุกท่าน ที่อาจจะเห็นว่าบทความนี้ไม่เหมาะสมด้วยประการใดๆก็ตาม ไว้ ณ ที่นี่ด้วยคร้าบ ผู้เขียนมิได้มีเจตนาร้ายต่อพุทธศาสนาแต่อย่างใด ถ้าท่านเห็นว่าเนื้อหานี้ไม่เหมาะสม รบกวนใช้มือของท่าน กดปุ่ม Close ที่ด้านซ้ายมือถ้าท่านใช้ Mac แต่หากท่านใช้ Windows รบกวนหาปุ่มเอง เพราะลืมแล้วว่าปุ่มอยู่ไหน ฮ่าๆ หรือไม่ก็กดข้าม ไปเลยโดยไม่ต้องอ่าน เพราะไม่ลบให้หรอก บรัยย สภาพ!
เอ้า ไม่พูดพร่ำทำเพลง มาเริ่มทำ Discord bot ด้วย GCP แบบง่ายๆกันเล้ยยย
ขั้นตอนแรก ไปสร้าง Webhook ขึ้นมาก่อน
โดยไปที่ Text Channel ที่ต้องการอยากจะสร้าง Bot จะมีเมนู Edit Channel อยู่ กดโลด กดเส่ะ!! หาไม่เจอก็ตามภาพด้านล่าง
ถัดไปให้ไปสร้าง Webhook ที่จะอยู่ในเมนู Integrations / Webhooks
ตั้งชื่อ Bot ที่ท่านต้องการได้เลย ใส่รูป Avatar ของ Bot ให้เรียบร้อย และหากท่านอยากเปลี่ยน Channel ก็ยังทำตรงนี้ได้เลย ตามภาพจ้า
เรียบร้อยแล้วให้กด Copy Webhook URL แล้วเก็บไว้ก่อนด้วยน้า
ตัวอย่าง URL ที่ได้มา มันจะมาใน Pattern นี้จ้า https://discord.com/api/webhooks/บลา บลา บลา/ตรงนี้น่าจะเป็น token key อะไรซักอย่าง ใครอยากรู้ไปหาคำตอบเอาเอง ฮ่าๆ
ถัดไปเราจะไปสร้าง Bot ด้วย Google Cloud Function
เข้าไปที่ Google Cloud Console ของคุณ แล้วไปที่เมนู Cloud Functions แล้วก็ Create Function เลยจ้าาา
ตั้งชื่อ Function เลือก Region ให้เรียบร้อย โดยที่เราจะใช้ Trigger เป็น HTTP และให้เลือก Authentication เป็น Allow unauthenticated invocations เพราะเราจะให้มันเป็น public api ไปเลย จะได้ไม่ต้องคิดเยอะ หรือใครมีวิธีอื่นก็มาแชร์กันในคอมเม้นได้จ้า
URL ของ Function เราต้องก็อปปี้เก็บไว้ด้วย เพราะเราจะเอาไปใช้ในขั้นตอนถัดไปจ้า
ได้เวลาเขียน Script Webhook กันแล้ว พส.
โดยเราจะเลือกให้เป็น Node.js แล้วก็ Script ที่เขียนจะสังเกตุว่า ชื่อ Entry point กับ ชื่อ Function มันจะต้องเหมือนกันน้าาา อันนี้ส่วนตัวเคยพลาด ฮ่าๆ
สามารถไปหาข้อมูลเพิ่มเติมได้ที่นี่น้าาา https://firebase.google.com/docs/functions/get-started
หรือจะก้อปปี้ของผู้เขียนไปเลยก็ได้ ง่ายมากแม่!
ในตัวอย่างจะมีการส่งข้อความแบบ mention roleใน Discord ด้วย (ใน script จะมี param ตัวนึงที่ชื่อ roleID อยู่ ก็ให้ไปใส่ role ที่ท่านต้องการ) วิธีหาก็ตามนี้จ้า https://support.discord.com/hc/en-us/community/posts/360048094171-Get-Role-ID
ทดสอบผลงานสักหน่อย
เมื่อทุกอย่างเสร็จสิ้นให้ทำการกด Deploy มันก็จะใช้เวลาแปปนึง ไม่รู้มันไปทำอะไรหน่ะนะ ให้เวลา GCP เขาหน่อย ฮ่าๆ พร้อมแล้วก็กด TEST THE FUNCTION โลด!
มาแล้วว มาแล้วววววว ฮ่าๆ จังงาย จังงายยยยยย
ทำให้ Bot พส ทำงานทุกๆ 3 เวลาโดยการใช้ Cloud Scheduler
โดยการเข้าไปในเมนู Cloud Scheduler แล้วก็สร้าง Job ขึ้นมาเลยจ้าา
กำหนดเวลาให้กับมันตามที่ต้องการได้เลย โดยในตัวอย่างจะเป็น 3 เวลา คือ 8:30, 12:00 และ 17:00 ในทุกๆ 5 วันทำงาน ก็คือจันทร์ — ศุกร์ นั่นเอง
เอาให้รำคาญกันไปเด่ะ ฮ่าๆ
สำหรับ Pattern ในการกำหนดเวลา ตามอ่านได้ที่ลิ้งนี้จ้าา https://cloud.google.com/scheduler/docs/configuring/cron-job-schedules?&_ga=2.37056800.-1058579329.1612457753#defining_the_job_schedule
ถัดไปก็กำหนดว่าจะให้ Scheduler job ตัวนี้ของเราทำงานใน Function ไหน ก็แค่ใส่ URL ของ Cloud Function ที่เราสร้างไว้แล้วนั่นแหละจ้า ง่ายมากก
เรียบร้อย!
แล้วในทุก ๆ 8:30, 12:00 และ 17:00 ของทีม Android Dev@TDG ก็จะไม่สงบสุขอีกต่อไป เพราะ พส. จะมาคอยเตือนให้ไปทำ Code Review ในทุกๆวัน ฮ่าๆ