การสร้างบอท Discord ตอนที่ 3 Command Bot


หลังจากที่ได้เรีนยรู้การสร้าง Webhook bot มาแล้วในบล็อคเรื่อง การสร้างบอท Discord ตอนที่ 2 Webhook Bot ต่อไปเราจะมาสร้างบอทในแบบ Command Bot กันดูบ้าง เราจะเขียนแบบเนื้อๆ เพื่อให้ผู้อ่านเข้าใจโครงสร้าง

สร้างบอท

ให้เพื่อนๆ ไปที่ Discord Developer Portal แล้วกดที่ปุ่ม New Application ทำการตั้งชื่อโปรเจค หรือชื่อแอพ อันนี้ไม่ใช่ชื่อของบอทนะ ตั้งชื่อเสร็จแล้วก้กดปุ่ม Create โล้ด

Discord Bot - Create Application Name

กดมาที่เมนู Bot แล้วกดที่ปุ่ม Add Bot จะมีกล่องข้อความกดก็กดปุ่ม Yes, do it!

ทำการตั้งชื่อบอท แล้วใส่รูปภาพให้บอทเพื่อความสวยงาม

Discord Bot - Adding Discord Bot

เลื่อนลงมาด้านล่าง เพื่อความสะดวกในการสาธิต เราจะให้สิทธิ์บอทเป็น Administrator จากนั้นกดปุ่ม Save เพื่อบันทึกที่เราตั้งค่าไปทั้งหมด

Discord Bot - Assign Bot Permission

ชวนบอทเข้า DISCORD

เมื่อบอทเราลืมตามาดูโลกแล้ว ในฐานะเจ้าของดิสคอส เป็นหน้าที่ที่จะต้องชวนบอทเข้ามาอยู่ในดิสคอสเราเหมือนกับการชวนเพื่อนๆ

กดมาที่เมนู OAuth2 แล้วกดที่เมนู URL Generator

ติ๊กที่ Bot ในส่วนของ Scope

ติ๊กที่ Administrator ในส่วนของ Permission

Discord Bot - Bot Scope
Discord Bot - Set Bot Permission

เลื่อนลงล่างสุด เราจะเจอกับ URL ให้ก๊อบปี้แล้วไปแปะที่ Google Chrome

เลือกการเลือก Server ที่เราจะแอดบอทเข้า แล้วยืนยัน ให้บอมเข้ามาเป็นส่วนหนึ่งของดิสคอส

Discord Bot - Invite Bot to Server

บอทโปรแกรมมิ่ง

เปิด VS Code แล้ว สร้างไฟล์ขึ้นมาใหม่ ตั้งชื่อว่า command_bot.py (หรืออยากจะตั้งเป็นอย่างอื่นก็ได้นะ) แล้วพิมพ์โค้ดด้านล่าง

# command_bot.py

from discord.ext import commands

TOKEN = ''

# กำหนดตัวสัญลักษณ์ที่จะใช้ในการสร้างคำสั่ง
client = commands.Bot(command_prefix='!')

# กำหนดคำสั่งที่จะทำงานเมื่อมีคำสั่งที่ถูกส่งไปยังบอท
@client.command(name='hello', help='สวัสดีครับ')
async def hello(ctx):
    await ctx.send(f'{ctx.author.mention}\r\nสวัสดีครับ')

# รันบอท
client.run(TOKEN)

สังเกตไหมว่า ตรงตัวแปร TOKEN ยังไม่ได้กำหนด เดียวเราจะกลับไปเอา token

กลับมาที่ Discord Developer Portal ที่เมนู Bot ให้กดปุ่ม Reset Token แล้ว เราจะได้ Token แบบรูปด้านล่างเลย

ก็อบปี้ Token ไปแปะที่โค้ดเราได้เลย ใส่ตรงตัวแปร Token

โอเคร ให้เรามาลองรันโค้ดดู จะสังเกตว่าบอทเราจะเขียวขึ้นมา นั้นแปลว่าบอทเราออนไลน์แล้วนั้นเอง

ให้ลองพิมพ์คำสั่ง !hello บอทก็จะตอบกลับมาตามที่เราโค้ดไว้เลย

จบแล้วครับสำหรับการสาธิตการสร้าง Command Bot ไม่ยากเลย ลองไปประยุกต์กันดูครับ