การสร้างบอทในการรับคำสั่ง และ ส่งข้อความไปที่ห้องแชทของ Discord สามารถใช้ python ในการสร้างได้โดย
1. ทำการติดตั้ง package discord.py ใน cmd
pip install discord.py
2. สมัคร discord developers
โดยไปที่เว็บไซต์ : https://discord.com/developers/applications
- คลิก New Application
- ตั้งชื่อบอทของเรา
- ตั้งค่าบอทโดยไปที่ OAuth2 > URL Generator และติ้กตามภาพด้านล่าง
- จากนั้นเลื่อนไปล่างสุด กด Copy นำ url ไปทำการเชิญบอทเข้าห้องดิสที่ต้องการได้เลย
ไปติ้กอนุญาติ intent
- สุดท้ายไปที่เมนู BOT แล้วกด Reset Token และบันทึก token เพื่อนำไปใส่ในบอทของเรา
3. เขียนโค้ดการทำงานของโปรแกรมบอท
import discord
from discord.ext import commands
TOKEN = 'TOKEN' # แทนที่ด้วย token ที่คุณได้รับ
intents = discord.Intents.default()
intents.message_content = True
intents.typing = False
bot = commands.Bot(command_prefix='!', intents=intents)
@bot.event
async def on_ready():
print(f'We have logged in as {bot.user.name}({bot.user.id})')
@bot.command()
async def hello(ctx):
await ctx.send("สวัสดี!")
bot.run(TOKEN)
4. รันสคริปโดยการเปิด cmd ไปที่ตำแหน่งของโฟลเดอร์ที่โปรแกรมอยู่
โดยใช้คำสั่ง cd ตำแหน่งที่เก็บไฟล์
จากนั้นพิมพ์ py ตามด้วยชื่อไฟล์ python
Login สำเร็จทักแชทส่วนตัวของบอทไปโดยพิมพ์ว่า !hello
บอทก็จะตอบกลับมาว่า สวัสดี ดังภาพด้านล่าง
อธิบายการทำงานโค้ด
- import discord: นำเข้าโมดูล discord, ซึ่งเป็นไลบรารีหลักสำหรับการสร้างบอท Discord ด้วย Python
- from discord.ext import commands: นำเข้าโมดูล commands จาก discord.ext, ซึ่งเป็นเครื่องมือที่ช่วยในการสร้างบอทที่สามารถรับคำสั่งจากผู้ใช้ได้
- สร้างตัวแปร TOKEN ที่เก็บค่า token ของบอท ควรแทนที่ 'YOUR_DISCORD_BOT_TOKEN' ด้วย token จริงๆ ของคุณ
- intents = discord.Intents.default(): สร้างอ็อบเจกต์ intents ด้วยค่าเริ่มต้นของ discord.Intents. Intents เป็นวิธีการบอกกับ Discord ว่าบอทต้องการเข้าถึงข้อมูลประเภทใดบ้าง
- intents.message_content = True: แสดงว่าบอทต้องการเข้าถึงเนื้อหาข้อความ (content) ของข้อความ
- intents.typing = False: บอทไม่ต้องการติดตามกิจกรรมการพิมพ์ (typing activity) ของผู้ใช้
- bot = commands.Bot(command_prefix='!', intents=intents): สร้างอ็อบเจกต์ Bot และกำหนด prefix สำหรับคำสั่งเป็น ! และกำหนด intents ที่ต้องการ
- @bot.event: ตกแต่งฟังก์ชันต่อไปด้วย decorator เพื่อกำหนดว่าเป็น event ของบอท
- async def on_ready(): ฟังก์ชันที่จะถูกเรียกเมื่อบอทเริ่มทำงานและเชื่อมต่อกับ Discord สำเร็จ
- print(f'We have logged in as {bot.user.name}({bot.user.id})'): แสดงข้อความบอกว่าบอทได้เข้าสู่ระบบในนามของผู้ใช้ใด
- @bot.command(): ตกแต่งฟังก์ชันต่อไปด้วย decorator เพื่อกำหนดว่าเป็นคำสั่ง (command) ของบอท
- async def hello(ctx): ฟังก์ชันสำหรับคำสั่ง !hello
- await ctx.send("สวัสดี!"): ส่งข้อความ "สวัสดี!" กลับไปยังแชแนลที่คำสั่งถูกเรียก
- bot.run(TOKEN): เริ่มรันบอทด้วย token ที่กำหนด
0 ความคิดเห็น