1. Home
  2. Netherland
  3. Bot
  4. 1. Discord API and Python

1. Discord API and Python

আমি বুঝতে পারছি যে আপনি Discord Bot তৈরি করার প্রক্রিয়া একদম প্রথম থেকে শুরু থেকে জানতে চান এবং সঠিকভাবে বুঝতে চান কীভাবে একে সঠিকভাবে কনফিগার ও সেটআপ করবেন। আমি আপনাকে খুবই ধীরে ধীরে এবং বিস্তারিতভাবে এই পুরো প্রক্রিয়া টি বর্ণনা করব।

ধাপ ১: Discord এ অ্যাকাউন্ট তৈরি করা

প্রথমে আপনাকে Discord অ্যাকাউন্ট তৈরি করতে হবে:

  1. Discord ওয়েবসাইটে যান: Discord
  2. Sign Up ক্লিক করে অ্যাকাউন্ট তৈরি করুন, অথবা যদি ইতিমধ্যে অ্যাকাউন্ট থাকে তবে Login করুন।

ধাপ ২: Discord Server তৈরি করা

বটকে Discord সার্ভারে যোগ করার আগে, আপনার একটি Discord Server তৈরি করতে হবে। এটি না থাকলে আপনি বটটিকে কোথাও যোগ করতে পারবেন না।

  1. Discord এ লগ ইন হওয়ার পর, বাম পাশে দেখবেন একটি “+” চিহ্ন। এটি ক্লিক করুন।
  2. একটি নতুন সার্ভার তৈরি করার জন্য “Create My Own” নির্বাচন করুন।
  3. Server Name দিন এবং Create ক্লিক করুন।
  4. আপনার সার্ভারটি তৈরি হয়ে যাবে।

ধাপ ৩: Discord Developer Portal-এ বট তৈরি করা

এখন আপনাকে Discord Developer Portal এ গিয়ে আপনার Bot তৈরি করতে হবে।

  1. Discord Developer Portal-এ যান: Discord Developer Portal
  2. সাইন ইন করার পর, New Application ক্লিক করুন।
  3. একটি নাম দিন যেমন MyBot এবং Create ক্লিক করুন।
  4. বট তৈরি হওয়ার পর, বাম দিকে Bot ট্যাব সিলেক্ট করুন এবং তারপর Add Bot ক্লিক করুন।
  5. বটটি তৈরি হয়ে যাবে এবং আপনি এখান থেকে Token পাবেন, যা আপনার কোডে ব্যবহার করতে হবে।

ধাপ ৪: OAuth2 URL দিয়ে বটকে সার্ভারে অ্যাড করা

এখন আপনাকে আপনার বটকে Discord Server-এ যোগ করতে হবে। এজন্য OAuth2 URL ব্যবহার করতে হবে।

  1. Discord Developer Portal-এ গিয়ে, OAuth2 ট্যাব সিলেক্ট করুন।
  2. Scopes-এ bot সিলেক্ট করুন।
  3. Bot Permissions-এ যেগুলি আপনি চান, সেগুলি সিলেক্ট করুন (যেমন: Send Messages, Read Message History)
  4. Generated URL কপি করুন এবং ব্রাউজারে পেস্ট করুন।
  5. তারপর Authorize ক্লিক করুন, এটি আপনাকে Discord সার্ভারে বটটি অ্যাড করার জন্য একটি অপশন দেবে।

ধাপ ৫: Python এ Discord Bot কোড তৈরি করা

আপনি যখন বটটি আপনার সার্ভারে অ্যাড করবেন, তখন আপনাকে Python দিয়ে বটটি চালাতে হবে। এ জন্য আপনি discord.py লাইব্রেরি ব্যবহার করবেন।

  1. Python ভার্চুয়াল এনভায়রনমেন্ট তৈরি করুন: python -m venv myenv myenv\Scripts\activate # Windows এর জন্য
  2. প্রজেক্টে প্রয়োজনীয় লাইব্রেরি ইনস্টল করুন: pip install discord.py python-dotenv
  3. আপনার .env ফাইল তৈরি করুন এবং সেখানে বট টোকেন সংরক্ষণ করুন: DISCORD_BOT_TOKEN=your_discord_bot_token
  4. একটি bot.py ফাইল তৈরি করুন এবং নিচের কোড লিখুন:
from dotenv import load_dotenv
import os
import discord

# .env ফাইল থেকে টোকেন লোড
load_dotenv()

# Discord বট টোকেন
token = os.getenv("DISCORD_BOT_TOKEN")

# Intents সেট আপ করা
intents = discord.Intents.default()
intents.message_content = True  # এটি message content এর জন্য প্রয়োজন

# Discord Client তৈরি
client = discord.Client(intents=intents)

# বট চালু হলে যে কার্যকলাপ হবে
@client.event
async def on_ready():
    print(f'Logged in as {client.user}')

# বটের কমান্ড চেক করা
@client.event
async def on_message(message):
    if message.content.startswith('!leaderboard'):
        await message.channel.send('Leaderboard coming soon!')

# বট চালানো
client.run(token)

ধাপ ৬: বট চালানো

  1. আপনার bot.py ফাইল সেভ করুন।
  2. Terminal বা Command Prompt থেকে নিচের কমান্ডটি রান করুন: python bot.py

এটি চালানোর পর, আপনার Discord চ্যাটে আপনি বটটি দেখতে পাবেন। যদি আপনি !leaderboard টাইপ করেন, তাহলে বটটি “Leaderboard coming soon!” মেসেজ পাঠাবে।


ধাপ ৭: বটের কার্যকলাপ পরীক্ষা করা

  1. Discord Server-এ যান যেখানে বটটি অ্যাড হয়েছে।
  2. একটি চ্যাট সেকশন খুলুন এবং !leaderboard টাইপ করুন।
  3. যদি সবকিছু সঠিকভাবে কাজ করে, তাহলে বটটি আপনার মেসেজের উত্তর দিবে।

ধাপ ৮: বটের ত্রুটি ও লগ ট্র্যাকিং

  1. আপনার বটের কার্যকলাপ এবং ত্রুটি ট্র্যাক করতে আপনি Python-এর logging মডিউল ব্যবহার করতে পারেন।
import logging

logging.basicConfig(level=logging.INFO)
logger = logging.getLogger()

@client.event
async def on_ready():
    logger.info(f'Logged in as {client.user}')

শেষ কথা:

এখন আপনি সঠিকভাবে Discord Bot তৈরি করে সেটি আপনার সার্ভারে যোগ করেছেন এবং Python দিয়ে এর কার্যক্রম চালাচ্ছেন। এটি একটি বেসিক Discord Bot যেটি আপনার সার্ভারে কমান্ডের মাধ্যমে মেসেজ পাঠায়।

আমি !leaderboard ছাড়া অন্য কিছু টাইপ করে মেসেজ দিতে পারছি না কেন সার্ভার এ ?

আপনার কোডে on_message ইভেন্টে !leaderboard এর বাইরে অন্য মেসেজগুলো হ্যান্ডল করতে চাইলে, আপনাকে else condition যোগ করতে হবে।

এখানে একটি উদাহরণ দিলাম:

from dotenv import load_dotenv
import os
import discord

# .env ফাইল থেকে টোকেন লোড
load_dotenv()

# Discord বট টোকেন
token = os.getenv("DISCORD_BOT_TOKEN")

# Intents সেট আপ করা
intents = discord.Intents.default()
intents.message_content = True  # এটি message content এর জন্য প্রয়োজন

# Discord Client তৈরি
client = discord.Client(intents=intents)

# বট চালু হলে যে কার্যকলাপ হবে
@client.event
async def on_ready():
    print(f'Logged in as {client.user}')

# বটের কমান্ড চেক করা
@client.event
async def on_message(message):
    # যদি মেসেজ 'leaderboard' এর সাথে শুরু হয়
    if message.content.startswith('!leaderboard'):
        await message.channel.send('Leaderboard coming soon!')

    # যদি অন্য কিছু লিখা হয়, যেমন সাধারণ মেসেজ
    elif message.content.startswith('!hello'):
        await message.channel.send('Hello, how can I help you?')

    # এখানে আরও কমান্ড যোগ করতে পারেন, যেমন:
    elif message.content.startswith('!help'):
        await message.channel.send('Here are the available commands: !leaderboard, !hello, !help')

    # অন্য কোন মেসেজের জন্য একটি সাধারণ উত্তর
    else:
        await message.channel.send(f'You typed: {message.content}')

# বট চালানো
client.run(token)

How can we help?