สร้างบอท Discord รับส่งข้อความ เข้าห้องพูดคุย

การสร้างบอทในการรับคำสั่ง และ ส่งข้อความไปที่ห้องแชทของ 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
บอทก็จะตอบกลับมาว่า สวัสดี ดังภาพด้านล่าง

อธิบายการทำงานโค้ด

  1. import discord: นำเข้าโมดูล discord, ซึ่งเป็นไลบรารีหลักสำหรับการสร้างบอท Discord ด้วย Python
  2. from discord.ext import commands: นำเข้าโมดูล commands จาก discord.ext, ซึ่งเป็นเครื่องมือที่ช่วยในการสร้างบอทที่สามารถรับคำสั่งจากผู้ใช้ได้
  3. สร้างตัวแปร TOKEN ที่เก็บค่า token ของบอท ควรแทนที่ 'YOUR_DISCORD_BOT_TOKEN' ด้วย token จริงๆ ของคุณ
  4. intents = discord.Intents.default(): สร้างอ็อบเจกต์ intents ด้วยค่าเริ่มต้นของ discord.Intents. Intents เป็นวิธีการบอกกับ Discord ว่าบอทต้องการเข้าถึงข้อมูลประเภทใดบ้าง
  5. intents.message_content = True: แสดงว่าบอทต้องการเข้าถึงเนื้อหาข้อความ (content) ของข้อความ
  6. intents.typing = False: บอทไม่ต้องการติดตามกิจกรรมการพิมพ์ (typing activity) ของผู้ใช้
  7. bot = commands.Bot(command_prefix='!', intents=intents): สร้างอ็อบเจกต์ Bot และกำหนด prefix สำหรับคำสั่งเป็น ! และกำหนด intents ที่ต้องการ
  8. @bot.event: ตกแต่งฟังก์ชันต่อไปด้วย decorator เพื่อกำหนดว่าเป็น event ของบอท
  9. async def on_ready(): ฟังก์ชันที่จะถูกเรียกเมื่อบอทเริ่มทำงานและเชื่อมต่อกับ Discord สำเร็จ
  10. print(f'We have logged in as {bot.user.name}({bot.user.id})'): แสดงข้อความบอกว่าบอทได้เข้าสู่ระบบในนามของผู้ใช้ใด
  11. @bot.command(): ตกแต่งฟังก์ชันต่อไปด้วย decorator เพื่อกำหนดว่าเป็นคำสั่ง (command) ของบอท
  12. async def hello(ctx): ฟังก์ชันสำหรับคำสั่ง !hello
  13. await ctx.send("สวัสดี!"): ส่งข้อความ "สวัสดี!" กลับไปยังแชแนลที่คำสั่งถูกเรียก
  14. bot.run(TOKEN): เริ่มรันบอทด้วย token ที่กำหนด

แสดงความคิดเห็น

0 ความคิดเห็น