วิธีสร้างแชทบอทใน 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"