การสร้าง Discord bot ตัวแรกของคุณง่ายกว่าที่คุณคิด คุณไม่จำเป็นต้องมีปริญญาด้านวิทยาการคอมพิวเตอร์หรือประสบการณ์การเขียนโปรแกรมหลายปี ในปี 2026 การสร้างและใช้งานบอทที่ใช้งานได้จริงใช้เวลาเพียงช่วงสุดสัปดาห์หากคุณตั้งใจ
คู่มือนี้จะแนะนำคุณตลอดกระบวนการทั้งหมด: การลงทะเบียนบอทของคุณ การเขียนคำสั่งแรกของคุณ การทดสอบในเครื่อง และการใช้งานจริง เมื่อถึงตอนท้าย คุณจะมีบอทที่ทำงานบนเซิร์ฟเวอร์ของคุณ
ทำความเข้าใจว่า Discord Bot คืออะไร
Discord bot คือโปรแกรมที่เชื่อมต่อกับ Discord ผ่าน API และตอบสนองต่อเหตุการณ์: เมื่อมีคนพิมพ์คำสั่ง ตอบสนองต่อข้อความ เข้าร่วมเซิร์ฟเวอร์ ฯลฯ
แนวคิดหลัก:
- แอปพลิเคชัน vs. บอท: "แอปพลิเคชัน" ของคุณได้รับการลงทะเบียนใน Discord Developer Portal "บอท" คือบัญชีผู้ใช้ที่เชื่อมโยงกับแอปพลิเคชันนั้น หนึ่งแอปพลิเคชันมีหนึ่งบอท
- โทเค็น: รหัสลับที่ตรวจสอบสิทธิ์บอทของคุณ ห้ามแชร์สิ่งนี้ มันเหมือนรหัสผ่านสำหรับบอทของคุณ
- Intents: สิทธิ์ที่ช่วยให้บอทของคุณเห็นเหตุการณ์บางอย่าง (ข้อความ, การตอบสนอง, การเปลี่ยนแปลงสถานะสมาชิก ฯลฯ) คุณเปิดใช้งานเฉพาะสิ่งที่คุณต้องการ
- คำสั่ง: บอทตอบสนองต่อคำสั่ง บอทสมัยใหม่ใช้คำสั่งสแลช (
/command) แทนคำสั่งนำหน้า (!command) คำสั่งสแลชได้รับการสนับสนุนอย่างเป็นทางการและแนะนำ - เหตุการณ์: บอทของคุณรอฟังเหตุการณ์ Discord (ส่งข้อความ, เพิ่มการตอบสนอง, สมาชิกเข้าร่วม) และตอบสนองต่อเหตุการณ์เหล่านั้น
ขั้นตอนที่ 1: ลงทะเบียนบอทของคุณใน Discord Developer Portal
นี่คือที่ที่บอทของคุณมีอยู่ในระบบของ Discord อย่างเป็นทางการ
กระบวนการ:
- ไปที่ Discord Developer Portal
- เข้าสู่ระบบด้วยบัญชี Discord ของคุณ
- คลิก "New Application"
- ตั้งชื่อ (เช่น "My First Bot")
- คลิก "Create"
- ตอนนี้คุณอยู่ในหน้าการตั้งค่าแอปพลิเคชันของคุณแล้ว
ตอนนี้สร้างผู้ใช้บอท:
- ไปที่ส่วน "Bot" (แถบด้านข้างซ้าย)
- คลิก "Add Bot"
- ใต้ชื่อผู้ใช้ของบอท คุณจะเห็นปุ่ม "TOKEN"
- คัดลอกโทเค็น — นี่คือวิธีที่บอทของคุณตรวจสอบสิทธิ์ เก็บสิ่งนี้เป็นความลับ ห้ามแชร์ต่อสาธารณะหรือ commit ไปยัง GitHub โดยไม่มีการเข้ารหัส
กำหนดค่าการตั้งค่าบอท:
- เปิดใช้งาน "Message Content Intent" (ให้บอทอ่านข้อความ)
- เปิดใช้งาน "Server Members Intent" (ให้บอทเห็นว่าใครอยู่ในเซิร์ฟเวอร์)
- เลื่อนลงไปที่ส่วน "OAuth2"
ขั้นตอนที่ 2: สร้างลิงก์เชิญของบอทของคุณ
คุณต้องมีลิงก์เชิญพิเศษเพื่อเพิ่มบอทลงในเซิร์ฟเวอร์
ใน Developer Portal:
- ไปที่ "OAuth2" → "URL Generator"
- ภายใต้ "SCOPES" ให้ตรวจสอบ:
bot - ภายใต้ "PERMISSIONS" ให้เลือกว่าบอทของคุณสามารถทำอะไรได้บ้าง:
Send Messages(จำเป็นสำหรับบอทใดๆ)Manage Messages(หากคุณกำลังกลั่นกรอง)Add Reactions(หากบอทตอบสนองต่อสิ่งต่างๆ)Connect+Speak(ถ้าเป็นบอทเพลง/เสียง)- สำหรับการเรียนรู้ เพียงเลือก
Send Messages+Read Messages(ขั้นต่ำที่ใช้งานได้)
- คัดลอก URL ที่สร้างขึ้นที่ด้านล่าง
- แชร์ URL นี้กับเจ้าของเซิร์ฟเวอร์ (หรือใช้เองเพื่อเพิ่มลงในเซิร์ฟเวอร์ทดสอบของคุณเอง)
อย่าใช้สิทธิ์ผู้ดูแลระบบ เว้นแต่จำเป็นอย่างยิ่ง การให้สิทธิ์มากเกินไปเป็นความเสี่ยงด้านความปลอดภัย
ขั้นตอนที่ 3: เลือกภาษาและเฟรมเวิร์กของคุณ
สองตัวเลือกหลักสำหรับผู้เริ่มต้น:
JavaScript (discord.js)
Discord.js เป็นเฟรมเวิร์ก Discord bot ที่ได้รับความนิยมมากที่สุด ชุมชนขนาดใหญ่ บทช่วยสอนมากมาย และเอกสารที่ยอดเยี่ยม
ข้อดี:
- ชุมชนที่ใหญ่ที่สุดและบทช่วยสอนออนไลน์มากที่สุด
- เอกสารประกอบ discord.js ยอดเยี่ยม
- Node.js ใช้กันอย่างแพร่หลายและเรียนรู้ได้ง่าย
- ใช้งานง่ายกับแพลตฟอร์มโฮสต์ส่วนใหญ่
ข้อเสีย:
- JavaScript มีข้อบกพร่อง (เส้นโค้งการเรียนรู้ async/await)
- Node.js เพิ่มค่าใช้จ่ายหน่วยความจำเมื่อเทียบกับ Python
เริ่มต้น:
- ติดตั้ง Node.js (v18+)
- สร้างโฟลเดอร์โปรเจ็กต์
npm init -ynpm install discord.js
Python (discord.py)
ไวยากรณ์ที่ง่ายกว่า เหมาะสำหรับผู้เริ่มต้น ยอดเยี่ยมสำหรับการเรียนรู้พื้นฐาน
ข้อดี:
- ไวยากรณ์ที่ง่ายที่สุดในการเรียนรู้
- ใช้งานง่ายสำหรับผู้เริ่มต้น
- เอกสารประกอบ discord.py ดี
- Python ใช้กันทุกที่ (วิทยาศาสตร์ข้อมูล, เว็บ, ระบบอัตโนมัติ)
ข้อเสีย:
- ชุมชนเล็กกว่า discord.js (แต่ก็ยังใหญ่)
- บทช่วยสอนน้อยกว่า JavaScript
- การใช้หน่วยความจำสูงกว่าเล็กน้อย
เริ่มต้น:
- ติดตั้ง Python 3.10+
- สร้างโฟลเดอร์โปรเจ็กต์
pip install discord.py
คำแนะนำสำหรับผู้เริ่มต้น: หากคุณรู้จัก Python ให้ใช้ discord.py หากคุณรู้จัก JavaScript ให้ใช้ discord.js หากคุณไม่รู้จักทั้งสองอย่าง Python จะเรียนรู้ได้ง่ายกว่า แต่ JavaScript มีแหล่งข้อมูลออนไลน์มากกว่า เลือกอย่างใดอย่างหนึ่งและมุ่งมั่น
ขั้นตอนที่ 4: เขียนบอทตัวแรกของคุณ (ตัวอย่าง Python)
นี่คือ Discord bot ที่ใช้งานได้ขั้นต่ำใน Python ที่ตอบสนองต่อคำสั่ง:
import discord
from discord.ext import commands
# สร้างบอทด้วยคำนำหน้าคำสั่งและ intents
intents = discord.Intents.default()
intents.message_content = True
bot = commands.Bot(command_prefix='!', intents=intents)
@bot.event
async def on_ready():
print(f'{bot.user} has connected to Discord!')
@bot.command(name='hello', help='กล่าวทักทาย')
async def hello(ctx):
await ctx.send(f'สวัสดี {ctx.author.name}!')
@bot.command(name='ping', help='ตอบสนองด้วยปิง')
async def ping(ctx):
await ctx.send('ปิง!')
bot.run('YOUR_TOKEN_HERE')
สิ่งนี้ทำอะไร:
- เชื่อมต่อกับ Discord
- รอฟังคำสั่ง
!helloและ!ping - ตอบสนองด้วยข้อความเมื่อถูกเรียก
ในการเรียกใช้:
- แทนที่
'YOUR_TOKEN_HERE'ด้วยโทเค็นจริงของคุณจากขั้นตอนที่ 1 - บันทึกเป็น
bot.py - เรียกใช้:
python bot.py - ใน Discord ให้พิมพ์
!helloในช่องใดก็ได้ - บอทตอบสนอง: "สวัสดี [ชื่อของคุณ]!"
ขั้นตอนที่ 5: ทดสอบในเครื่อง
ก่อนใช้งานจริง ให้ทดสอบบอทของคุณในเครื่อง (บนคอมพิวเตอร์ของคุณ)
ตั้งค่าเซิร์ฟเวอร์ทดสอบ:
- สร้างเซิร์ฟเวอร์ Discord ส่วนตัวสำหรับการทดสอบ
- เพิ่มบอทของคุณลงในนั้นโดยใช้ลิงก์เชิญจากขั้นตอนที่ 2
- เรียกใช้โค้ดบอทของคุณในเครื่อง
- พิมพ์คำสั่งในเซิร์ฟเวอร์ทดสอบ
- เฝ้าดูข้อผิดพลาดในเทอร์มินัลของคุณ แก้ไข
ข้อผิดพลาดทั่วไป:
- "Invalid token" — คุณคัดลอกโทเค็นผิดหรือหมดอายุ สร้างใหม่ใน Developer Portal
- "Missing permissions" — บอทไม่มีสิทธิ์ดำเนินการนั้นในช่องนี้ เพิ่มสิทธิ์หรือใช้ช่องที่บอทมีสิทธิ์มากกว่า
- "Intents are not enabled" — คุณต้องเปิดใช้งาน intents ใน Developer Portal (Message Content Intent, Server Members Intent ฯลฯ)
ทดสอบอย่างละเอียด บอทที่มีข้อบกพร่องในการผลิตเป็นเรื่องน่าอาย
ขั้นตอนที่ 6: เพิ่มคำสั่งเพิ่มเติม
ตอนนี้คุณเข้าใจพื้นฐานแล้ว ขยายด้วยคุณสมบัติเพิ่มเติม
ตัวอย่าง Python — คำสั่งเศรษฐกิจง่ายๆ:
@bot.command(name='balance', help='ตรวจสอบยอดเหรียญของคุณ')
async def balance(ctx):
# ในบอทจริง สิ่งนี้จะค้นหาฐานข้อมูล
# สำหรับตอนนี้ เพียงส่งคืนค่าจำลอง
await ctx.send(f'{ctx.author.name} คุณมี 100 เหรียญ!')
@bot.command(name='roll', help='ทอยลูกเต๋า (1-6)')
async def roll(ctx):
import random
result = random.randint(1, 6)
await ctx.send(f'{ctx.author.name} ทอยได้: **{result}**')
แต่ละคำสั่งเป็นฟังก์ชันง่ายๆ เพิ่มได้มากเท่าที่คุณต้องการ
ขั้นตอนที่ 7: ใช้งานบอทของคุณ
การโฮสต์ในเครื่องใช้ได้สำหรับการทดสอบ แต่บอทของคุณจะหยุดทำงานเมื่อคุณปิดแล็ปท็อป ใช้งานบนเซิร์ฟเวอร์เพื่อให้ทำงานตลอด 24 ชั่วโมงทุกวัน
ตัวเลือกการโฮสต์ฟรี
Replit (ง่ายที่สุดสำหรับผู้เริ่มต้น):
- ไปที่ Replit.com
- สร้าง Repl ใหม่ → Python (หรือ Node.js)
- วางโค้ดบอทของคุณ
- คลิก "Run"
- Replit โฮสต์ฟรี (มีข้อจำกัด: อาจพักหลังจากไม่มีการใช้งาน)
Railway.app (ทันสมัย เชื่อถือได้):
- ไปที่ Railway.app
- เชื่อมต่อ GitHub (หรืออัปโหลดไฟล์โดยตรง)
- สร้างโปรเจ็กต์ใหม่ → เลือกบอทของคุณ
- Railway ใช้งานโดยอัตโนมัติ
- ระดับฟรีรวมเครดิตรายเดือน $5
Glitch (คล้ายกับ Replit):
- ไปที่ Glitch.com
- สร้างโปรเจ็กต์ใหม่
- วางโค้ด
- Glitch ทำให้มันทำงาน (ภายในขีดจำกัดระดับฟรี)
สำคัญ: อย่าฮาร์ดโค้ดโทเค็นของคุณในโค้ดที่คุณ push ไปยัง GitHub ใช้ตัวแปรสภาพแวดล้อม:
import os
from dotenv import load_dotenv
load_dotenv()
TOKEN = os.getenv('DISCORD_TOKEN')
bot.run(TOKEN)
สร้างไฟล์ .env ในเครื่อง (เพิ่มลงใน .gitignore เพื่อไม่ให้ commit):
DISCORD_TOKEN=your_actual_token_here
บน Replit/Railway ให้ตั้งค่าโทเค็นเป็นตัวแปรสภาพแวดล้อมลับในการตั้งค่าแพลตฟอร์ม (ไม่ใช่ในโค้ด)
ข้อผิดพลาดทั่วไปของผู้เริ่มต้น
ข้อผิดพลาด 1: ฮาร์ดโค้ดโทเค็น อย่าวางโทเค็นของคุณในโค้ดที่คุณ push ไปยัง GitHub บอทที่มีโทเค็นรั่วไหลจะถูกบุกรุกทันที ใช้ตัวแปรสภาพแวดล้อม
ข้อผิดพลาด 2: ไม่จัดการข้อผิดพลาด บอทของคุณขัดข้องเมื่อป้อนข้อมูลที่ไม่คาดคิด เพิ่มการจัดการข้อผิดพลาด:
@bot.command()
async def divide(ctx, a: int, b: int):
try:
result = a / b
await ctx.send(result)
except ZeroDivisionError:
await ctx.send('ไม่สามารถหารด้วยศูนย์ได้!')
except ValueError:
await ctx.send('โปรดป้อนตัวเลขที่ถูกต้อง!')
ข้อผิดพลาด 3: ไม่เคารพขีดจำกัดอัตรา Discord จำกัดความเร็วในการส่งข้อความ อย่าสแปม API เพิ่มความล่าช้าระหว่างการดำเนินการจำนวนมาก
ข้อผิดพลาด 4: ละเว้น intents บอทเริ่มต้นจำนวนมากล้มเหลวเนื่องจากไม่ได้เปิดใช้งาน intents ที่จำเป็นใน Developer Portal ตรวจสอบ intents ที่บอทของคุณต้องการก่อนใช้งานจริง
ข้อผิดพลาด 5: ขอบเขตที่ทะเยอทะยานเกินไป อย่าพยายามสร้างระบบเศรษฐกิจ การกลั่นกรอง เพลง และ 50 คำสั่งในบอทตัวแรกของคุณ เริ่มต้นด้วย 3-5 คำสั่งง่ายๆ ขยายเมื่อคุณสบายใจ
ขั้นตอนถัดไป
ตอนนี้คุณมีบอทพื้นฐานแล้ว:
- ขยายฟังก์ชันการทำงาน: เพิ่มคำสั่งเพิ่มเติม ใช้ฐานข้อมูลเพื่อคงข้อมูล ใช้ตรรกะที่ซับซ้อน
- ใช้คำสั่งสแลช: ไวยากรณ์
/commandที่ทันสมัยแทนคำสั่งนำหน้า - เพิ่มการตอบสนอง: ให้ผู้ใช้คลิกปุ่มหรือตอบสนองด้วยอิโมจิ
- เชื่อมต่อฐานข้อมูล: จัดเก็บข้อมูลผู้ใช้ เหรียญ การตั้งค่า (SQLite สำหรับผู้เริ่มต้น, PostgreSQL สำหรับขนาด)
- เข้าร่วมชุมชน: ชุมชนนักพัฒนา Discord bot (reddit.com/r/discordbots, Discord.js support server) มีคำตอบสำหรับทุกคำถาม
แหล่งข้อมูล
- เอกสารประกอบ discord.js: https://discord.js.org
- เอกสารประกอบ discord.py: https://discordpy.readthedocs.io
- เอกสารประกอบ Discord API: https://discord.com/developers/docs/intro
- บทช่วยสอน YouTube: ค้นหา "[discord.js/discord.py] tutorial" — เนื้อหาจำนวนมาก
Discord bot ตัวแรกของคุณเป็นโปรเจ็กต์ช่วงสุดสัปดาห์ Discord bot ที่ดีตัวแรกของคุณคือการฝึกฝนหนึ่งเดือน บอทตัวแรกของคุณที่ใช้โดย 1,000 เซิร์ฟเวอร์คือการวนซ้ำ การพัฒนาคุณสมบัติ และการสร้างชุมชนเป็นเวลาหลายเดือน เริ่มต้นตอนนี้ วนซ้ำอย่างต่อเนื่อง และอย่าคิดมากเกินไป