[Discord Bot] เมื่อทีม Android Developer@TDG นิมนต์พระมหาไพรวัลย์ให้มาเตือนทำ Code Review 3 เวลาหลังอาหาร สภาพ!

Kittisak Buaphanna
te<h @TDG
Published in
3 min readSep 30, 2021

สอนวิธีการสร้าง Discord Bot พส. ง่ายๆ ด้วย Google Cloud Platform ล้วนๆเลยจ้า

ก่อนอื่นต้องกราบขออภัยผู้อ่านทุกท่าน ที่อาจจะเห็นว่าบทความนี้ไม่เหมาะสมด้วยประการใดๆก็ตาม ไว้ ณ ที่นี่ด้วยคร้าบ ผู้เขียนมิได้มีเจตนาร้ายต่อพุทธศาสนาแต่อย่างใด ถ้าท่านเห็นว่าเนื้อหานี้ไม่เหมาะสม รบกวนใช้มือของท่าน กดปุ่ม Close ที่ด้านซ้ายมือถ้าท่านใช้ Mac แต่หากท่านใช้ Windows รบกวนหาปุ่มเอง เพราะลืมแล้วว่าปุ่มอยู่ไหน ฮ่าๆ หรือไม่ก็กดข้าม ไปเลยโดยไม่ต้องอ่าน เพราะไม่ลบให้หรอก บรัยย สภาพ!

เอ้า ไม่พูดพร่ำทำเพลง มาเริ่มทำ Discord bot ด้วย GCP แบบง่ายๆกันเล้ยยย

Ref: https://www.youtube.com/watch?v=EXKHRiNVNXc

ขั้นตอนแรก ไปสร้าง 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 เลยจ้าาา

ขอปิดชื่อ Project ไว้หน่อยน้าาา

ตั้งชื่อ Function เลือก Region ให้เรียบร้อย โดยที่เราจะใช้ Trigger เป็น HTTP และให้เลือก Authentication เป็น Allow unauthenticated invocations เพราะเราจะให้มันเป็น public api ไปเลย จะได้ไม่ต้องคิดเยอะ หรือใครมีวิธีอื่นก็มาแชร์กันในคอมเม้นได้จ้า

ขอปิดชื่อ project ไว้หน่อยน้า

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 ขึ้นมาเลยจ้าา

Click โลดจ้า

กำหนดเวลาให้กับมันตามที่ต้องการได้เลย โดยในตัวอย่างจะเป็น 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 ในทุกๆวัน ฮ่าๆ

อยากกินหมูกะทะ

แล้วก็เป็นอันจบแต่เพียงเท่านี้ อามิตตาพุธ อาเมน และ ลาก่อย…

--

--