วิธีสร้างแชทบอทใน Discord
บอท Discord สามารถทำทุกอย่างที่มีในช่องทางอื่นได้ และยังโต้ตอบกับเซิร์ฟเวอร์ของคุณโดยตรง: ตอบกลับในช่อง, เธรด, และข้อความส่วนตัว, เพิ่มรีแอคชัน, รับและส่งไฟล์, และแก้ไขหรือลบข้อความของตัวเอง คุณสมบัติเพิ่มเติมรวมถึงการดูแล (การพัก, เตะ, แบน, และลบข้อความ), การจัดการบทบาท, การสร้างช่องสำหรับตั๋ว, และคำสั่งแบบ Slash
การตั้งค่าใช้เวลาประมาณสิบนาทีและประกอบด้วยสองส่วน: ขั้นแรก สร้างบอทในฝั่ง Discord จากนั้นเชื่อมต่อกับโปรเจกต์ของคุณใน Mavibot
ขั้นตอนที่ 1. สร้างแอปพลิเคชัน
เปิด Discord Developer Portal แล้วคลิก New Application ใส่ชื่อ — สมาชิกเซิร์ฟเวอร์จะเห็นชื่อนี้
ในส่วน Installation ให้ตั้งค่า Install Link เป็น None คุณจะสร้างลิงก์ติดตั้งบอทด้วยตัวเองในขั้นตอนที่ 4 พร้อมสิทธิ์ที่จำเป็น
ขั้นตอนที่ 2. กำหนดค่าบอท
ไปที่ส่วน Bot
ปิดการใช้งาน Public Bot มิฉะนั้น ทุกคนจะสามารถเพิ่มบอทของคุณไปยังเซิร์ฟเวอร์ของตนได้
เปิดใช้งาน privileged intents ที่จำเป็น — หากไม่มี Discord จะไม่ส่งข้อมูลบางอย่างไปยังบอท:
| Intent | เหตุผลที่ต้องใช้ |
|---|---|
| Message Content Intent | ข้อความของข้อความ หากไม่มี บอทจะเห็นว่ามีการส่งข้อความแต่ไม่เห็นเนื้อหา ดังนั้นทริกเกอร์ตามข้อความจะไม่ทำงาน |
| Server Members Intent | เหตุการณ์ของสมาชิก: การเข้าร่วม, การออก, การเปลี่ยนบทบาท, และการเปลี่ยนชื่อเล่น หากไม่มี การทักทายสมาชิกใหม่และการกำหนดบทบาทอัตโนมัติจะไม่ทำงาน |
| Presence Intent | สถานะออนไลน์ ไม่จำเป็นสำหรับการทำงานของบอทและไม่ต้องเปิดใช้งาน |
ขั้นตอนที่ 3. รับโทเค็นบอท
ในส่วน Bot เดียวกัน คลิก Reset Token และคัดลอกโทเค็นที่ปรากฏขึ้น โทเค็นจะแสดงเพียงครั้งเดียว — บันทึกไว้ เพราะคุณจะต้องใช้ในขั้นตอนที่ 6
สำคัญ! โทเค็นให้สิทธิ์เข้าถึงบอทของคุณอย่างสมบูรณ์ อย่าเผยแพร่หรือแชร์ หากโทเค็นถูกบุกรุก ให้คลิก Reset Token อีกครั้ง โทเค็นเก่าจะหยุดทำงานทันที และคุณจะต้องเชื่อมต่อบอทใน Mavibot ใหม่โดยใช้โทเค็นใหม่
ขั้นตอนที่ 4. เลือกสิทธิ์
เปิด OAuth2 → URL Generator
ภายใต้ Scopes ให้เลือก:
-
bot— ตัวบอทเอง; -
applications.commands— หากคุณวางแผนจะใช้คำสั่งแบบ Slash หากไม่มี scope นี้ คำสั่งจะไม่สามารถลงทะเบียนบนเซิร์ฟเวอร์ได้
ส่วน Bot Permissions จะปรากฏด้านล่าง เลือกเฉพาะสิทธิ์ที่บอทของคุณต้องการจริง ๆ — ควรหลีกเลี่ยงการให้สิทธิ์ที่ไม่จำเป็น
สิทธิ์ขั้นต่ำสำหรับการส่งข้อความ
| สิทธิ์ | สิ่งที่จะไม่ทำงานหากไม่มี |
|---|---|
| View Channels | บอทจะไม่สามารถเห็นช่องได้เลย |
| Send Messages | บอทจะไม่สามารถตอบกลับได้ |
| Read Message History | การตอบกลับข้อความและการอ้างอิงจะไม่ทำงาน |
| Embed Links, Attach Files | ลิงก์ที่มีตัวอย่างและไฟล์จะไม่ถูกส่ง |
| Add Reactions | บอทจะไม่สามารถเพิ่มรีแอคชันได้ |
สิทธิ์เพิ่มเติมสำหรับการดูแลและระบบอัตโนมัติ
| สิทธิ์ | ใช้ทำอะไร |
|---|---|
| Manage Messages | การลบข้อความของผู้ใช้อื่นและการจัดการข้อความที่ปักหมุด |
| Moderate Members | การพัก (mute) |
| Kick Members | การนำสมาชิกออกจากเซิร์ฟเวอร์ |
| Ban Members | การแบนและยกเลิกการแบนสมาชิก |
| Manage Roles | การกำหนดและลบบทบาท |
| Manage Nicknames | การเปลี่ยนชื่อเล่นของสมาชิก |
| Manage Channels | การสร้างและลบช่อง รวมถึงช่องตั๋ว |
| Create Instant Invite | การสร้างลิงก์เชิญ |
สิทธิ์สามารถเปลี่ยนแปลงได้ในภายหลังในการตั้งค่าบทบาทบอทบนเซิร์ฟเวอร์ โดยไม่ต้องเชื่อมต่อบอทใหม่
ขั้นตอนที่ 5. เพิ่มบอทไปยังเซิร์ฟเวอร์ของคุณ
คัดลอก URL ที่สร้างขึ้นที่ด้านล่างของหน้า URL Generator เปิดในเบราว์เซอร์ และเลือกเซิร์ฟเวอร์
เฉพาะเจ้าของเซิร์ฟเวอร์หรือสมาชิกที่มีสิทธิ์ Manage Server เท่านั้นที่สามารถเพิ่มบอทได้
หลังจากเพิ่มบอทแล้ว ให้ตรวจสอบลำดับบทบาท:
Server Settings → Roles
บทบาทของบอทต้องอยู่เหนือบทบาทที่บอทจะกำหนด และเหนือบทบาทของสมาชิกที่บอทต้องดูแล
นี่คือข้อจำกัดของ Discord: บอทไม่สามารถกำหนดบทบาทที่อยู่ในระดับเดียวกันหรือสูงกว่าบทบาทของตัวเอง และไม่สามารถพักหรือแบนสมาชิกที่มีบทบาทสูงกว่าบทบาทของบอท
ขั้นตอนที่ 6. ปล่อยช่อง Interactions Endpoint URL ว่างไว้
กลับไปที่ส่วน General Information ของแอปพลิเคชันของคุณ และตรวจสอบให้แน่ใจว่าช่อง Interactions Endpoint URL ว่างเปล่า
หากมีการระบุอะไรในช่องนี้ Discord จะหยุดส่งการคลิกปุ่มและการโต้ตอบของคำสั่งแบบ Slash ไปยังบอท — ข้อมูลเหล่านั้นจะถูกส่งไปยัง URL ที่ระบุแทน
จากมุมมองของผู้ใช้ จะดูเหมือนว่าปุ่มในข้อความของบอทไม่ทำงาน ในขณะที่คำสั่งแบบ Slash คืนค่า "Application did not respond."
ขั้นตอนที่ 7. เชื่อมต่อบอทกับโปรเจกต์ของคุณ
ในโปรเจกต์ Mavibot ของคุณ เปิดส่วน Channels คลิก Discord และวางโทเค็นจากขั้นตอนที่ 3
หลังจากนั้นไม่กี่วินาที บอทควรปรากฏออนไลน์บนเซิร์ฟเวอร์ Discord ของคุณ หากไม่เป็นเช่นนั้น ตรวจสอบให้แน่ใจว่าโทเค็นถูกคัดลอกทั้งหมดและไม่มีช่องว่างเพิ่มเติม
ตรวจสอบว่าทุกอย่างทำงาน
ส่งข้อความในช่องเซิร์ฟเวอร์ใด ๆ ที่ควรทริกเกอร์การตอบกลับของบอท — บอทควรตอบกลับ
หากบอทออนไลน์แต่ไม่ตอบกลับ Message Content Intent มักจะไม่ได้เปิดใช้งาน
เข้าร่วมเซิร์ฟเวอร์โดยใช้บัญชีอื่นหรือขอให้เพื่อนร่วมงานเข้าร่วม — การทักทายสมาชิกใหม่ควรทำงาน หากไม่ทำงาน ให้ตรวจสอบ Server Members Intent
คลิกปุ่มในข้อความของบอท หากไม่มีอะไรเกิดขึ้น ให้ตรวจสอบ Interactions Endpoint URL
สิ่งสำคัญที่ควรรู้
การสนทนาในช่องถูกแชร์โดยทุกคน
สมาชิกทุกคนในช่องเขียนลงในการสนทนาเดียวกัน เช่นเดียวกับในแชทกลุ่ม
ตัวแปรเช่น "ใครส่งข้อความ" หมายถึงผู้เขียนข้อความล่าสุดและจะถูกเขียนทับโดยข้อความถัดไป — อ่านและประมวลผลทันทีในบล็อกเดียวกัน
ข้อความส่วนตัวกับบอทและเหตุการณ์ของสมาชิก เช่น การเข้าร่วม, การออก, และการเปลี่ยนบทบาท จะถูกจัดการในการสนทนาแยกต่างหากสำหรับสมาชิกนั้น
ข้อความส่วนตัวถูกจำกัดโดย Discord
บอทสามารถส่งข้อความส่วนตัวไปยังสมาชิกได้ก็ต่อเมื่อสมาชิกแชร์เซิร์ฟเวอร์กับบอทและไม่ได้ปิดการใช้งานข้อความส่วนตัวจากสมาชิกเซิร์ฟเวอร์ในการตั้งค่าความเป็นส่วนตัว
หากสมาชิกปิดการใช้งานข้อความส่วนตัว ข้อความจะไม่สามารถส่งได้ — นี่คือข้อจำกัดของ Discord และไม่สามารถเลี่ยงได้
ข้อมูล Webhook เต็มรูปแบบ
หากคุณกำหนดค่าใด ๆ ให้กับตัวแปร save_webhook ข้อมูลเหตุการณ์ที่เข้ามาทั้งหมดจะถูกบันทึกไปยังตัวแปร discord_webhook
สิ่งนี้ไม่ค่อยจำเป็น — เกือบทุกอย่างที่คุณอาจต้องการจาก webhook มีให้ผ่านตัวแปรแยกต่างหากแล้ว
ปัญหาทั่วไป
| สิ่งที่เกิดขึ้น | สาเหตุ |
|---|---|
| บอทออนไลน์แต่ไม่ตอบสนองต่อข้อความ | Message Content Intent ไม่ได้เปิดใช้งาน |
| ไม่ได้รับเหตุการณ์การเข้าร่วม, การออก, และการเปลี่ยนบทบาท | Server Members Intent ไม่ได้เปิดใช้งาน |
| ปุ่มไม่ทำงานและคำสั่งแบบ Slash คืนค่า "Application did not respond" | Interactions Endpoint URL ถูกกรอกข้อมูล |
| ไม่สามารถลงทะเบียนคำสั่งแบบ Slash | บอทถูกเพิ่มโดยไม่มี scope applications.commands — สร้าง URL การติดตั้งใหม่และเพิ่มบอทอีกครั้ง |
| บอทไม่สามารถกำหนดบทบาทได้ | บทบาทของบอทไม่ได้อยู่เหนือบทบาทเป้าหมาย หรือบอทไม่มี Manage Roles บทบาทที่จัดการโดย integrations รวมถึงบทบาทของบอทอื่น และบทบาท @everyone ไม่สามารถกำหนดได้ |
| บอทไม่สามารถพักหรือแบนสมาชิกได้ | บทบาทของสมาชิกสูงกว่าบทบาทของบอท หรือบอทไม่มี Moderate Members / Ban Members |
| บอทไม่เห็นช่องเฉพาะ | สิทธิ์ระดับช่องแทนที่สิทธิ์ระดับเซิร์ฟเวอร์ ตรวจสอบสิทธิ์บทบาทบอทในการตั้งค่าช่องนั้น |
| ไม่สามารถลบข้อความได้ | บอทไม่มี Manage Messages Discord อนุญาตให้ลบจำนวนมากเฉพาะข้อความที่มีอายุน้อยกว่า 14 วัน |
ขั้นตอนถัดไป
แชทบอท Discord รองรับฟีเจอร์หลักเดียวกันกับบอทในช่องทางอื่น: สามารถส่งข้อความไปยังช่อง, เธรด, และข้อความส่วนตัว, เพิ่มรีแอคชัน, ส่งและรับไฟล์แนบ, และแก้ไขหรือลบข้อความของตัวเอง
สำหรับฟังก์ชันการจัดการเซิร์ฟเวอร์ที่พร้อมใช้งานจากโฟลว์บอทของคุณ ดู "Discord API Functions."
เพื่อเรียนรู้วิธีสร้างโฟลว์ข้อความด้วยตัวเอง ดู "How to Create a Chatbot for Business."
เพื่อให้ AI สื่อสารกับลูกค้าใน Discord เปิดใช้งาน AI Assistant — ดูส่วน "AI Assistant"