ایجاد اولین ربات دیسکورد شما آسانتر از آن چیزی است که فکر میکنید. شما به مدرک علوم کامپیوتر یا سالها تجربه برنامهنویسی نیاز ندارید. در سال ۲۰۲۶، ساخت و استقرار یک ربات کاربردی اگر متمرکز باشید، یک آخر هفته طول میکشد.
این راهنما شما را در کل فرآیند راهنمایی میکند: ثبتنام ربات، نوشتن اولین دستور، آزمایش محلی آن و استقرار آن به صورت زنده. در پایان، یک ربات خواهید داشت که روی سرور شما اجرا میشود.
درک اینکه ربات دیسکورد چیست
یک ربات دیسکورد برنامهای است که از طریق API به دیسکورد متصل میشود و به رویدادها پاسخ میدهد: وقتی کسی یک دستور را تایپ میکند، به یک پیام واکنش نشان میدهد، به سرور میپیوندد و غیره.
مفاهیم کلیدی:
- برنامه در مقابل ربات: "برنامه" شما در پورتال توسعهدهندگان دیسکورد ثبت شده است. "ربات" حساب کاربری مرتبط با آن برنامه است. یک برنامه یک ربات دارد.
- توکنها: یک کلید مخفی که ربات شما را احراز هویت میکند. هرگز این را به اشتراک نگذارید. این مانند یک رمز عبور برای ربات شما است.
- Intents: مجوزهایی که به ربات شما اجازه میدهند رویدادهای خاصی را ببیند (پیامها، واکنشها، تغییرات وضعیت اعضا و غیره). شما فقط آنچه را که نیاز دارید فعال میکنید.
- دستورات: رباتها به دستورات پاسخ میدهند. رباتهای مدرن از دستورات اسلش (
/command) به جای دستورات پیشوندی (!command) استفاده میکنند. دستورات اسلش به طور رسمی پشتیبانی میشوند و توصیه میشوند. - رویدادها: ربات شما به رویدادهای دیسکورد (ارسال پیام، اضافه شدن واکنش، پیوستن عضو) گوش میدهد و به آنها واکنش نشان میدهد.
مرحله ۱: ثبتنام ربات خود در پورتال توسعهدهندگان دیسکورد
اینجاست که ربات شما به طور رسمی در سیستم دیسکورد وجود دارد.
فرآیند:
- به پورتال توسعهدهندگان دیسکورد بروید
- با حساب دیسکورد خود وارد شوید
- روی "New Application" کلیک کنید
- آن را نامگذاری کنید (به عنوان مثال، "My First Bot")
- روی "Create" کلیک کنید
- اکنون در تنظیمات برنامه خود هستید
اکنون کاربر ربات را ایجاد کنید:
- به بخش "Bot" (نوار کناری سمت چپ) بروید
- روی "Add Bot" کلیک کنید
- در زیر نام کاربری ربات، یک دکمه "TOKEN" خواهید دید
- توکن را کپی کنید — اینگونه ربات شما احراز هویت میشود. این را مخفی نگه دارید. هرگز آن را به صورت عمومی به اشتراک نگذارید یا بدون رمزگذاری به GitHub متعهد نکنید.
تنظیمات ربات را پیکربندی کنید:
- "Message Content Intent" را فعال کنید (به ربات اجازه میدهد متن پیام را بخواند)
- "Server Members Intent" را فعال کنید (به ربات اجازه میدهد ببیند چه کسی در سرور است)
- به پایین به بخش "OAuth2" بروید
مرحله ۲: تولید لینک دعوت ربات خود
برای افزودن ربات به یک سرور، به یک لینک دعوت ویژه نیاز دارید.
در پورتال توسعهدهندگان:
- به "OAuth2" → "URL Generator" بروید
- در زیر "SCOPES"، علامت بزنید:
bot - در زیر "PERMISSIONS"، انتخاب کنید که ربات شما چه کاری میتواند انجام دهد:
Send Messages(برای هر رباتی ضروری است)Manage Messages(اگر در حال مدیریت هستید)Add Reactions(اگر ربات به چیزها واکنش نشان میدهد)Connect+Speak(اگر یک ربات موسیقی/صوتی است)- برای یادگیری، فقط
Send Messages+Read Messagesرا انتخاب کنید (حداقل قابل اجرا)
- URL تولید شده را در پایین کپی کنید
- این URL را با صاحبان سرور به اشتراک بگذارید (یا از آن برای افزودن به سرور آزمایشی خود استفاده کنید)
از مجوز Administrator استفاده نکنید مگر اینکه کاملاً ضروری باشد. مجوزدهی بیش از حد یک خطر امنیتی است.
مرحله ۳: زبان و چارچوب خود را انتخاب کنید
دو گزینه اصلی برای مبتدیان:
جاوااسکریپت (discord.js)
Discord.js محبوبترین چارچوب ربات دیسکورد است. جامعه بزرگ، تعداد زیادی آموزش و مستندات عالی.
مزایا:
- بزرگترین جامعه و بیشترین آموزشها آنلاین
- مستندات discord.js عالی است
- Node.js به طور گسترده استفاده میشود و یادگیری آن آسان است
- استقرار آسان در اکثر پلتفرمهای میزبانی
معایب:
- جاوااسکریپت دارای ویژگیهای خاصی است (منحنی یادگیری async/await)
- Node.js سربار حافظه را در مقابل پایتون اضافه میکند
شروع کنید:
- Node.js (v18+) را نصب کنید
- یک پوشه پروژه ایجاد کنید
npm init -ynpm install discord.js
پایتون (discord.py)
سینتکس سادهتر، برای مبتدیان عالی، عالی برای یادگیری اصول.
مزایا:
- سادهترین سینتکس برای یادگیری
- بصری برای مبتدیان
- مستندات discord.py خوب است
- پایتون در همه جا استفاده میشود (علم داده، وب، اتوماسیون)
معایب:
- جامعه کوچکتر از discord.js (اما هنوز بزرگ)
- آموزشهای کمتری نسبت به جاوااسکریپت
- مصرف حافظه کمی بالاتر
شروع کنید:
- Python 3.10+ را نصب کنید
- یک پوشه پروژه ایجاد کنید
pip install discord.py
توصیه برای مبتدیان: اگر پایتون را میدانید، از discord.py استفاده کنید. اگر جاوااسکریپت را میدانید، از discord.js استفاده کنید. اگر هیچ کدام را نمیدانید، یادگیری پایتون آسانتر است، اما جاوااسکریپت منابع بیشتری آنلاین دارد. یکی را انتخاب کنید و متعهد شوید.
مرحله ۴: نوشتن اولین ربات خود (مثال پایتون)
در اینجا یک ربات دیسکورد کارآمد و حداقلی در پایتون وجود دارد که به یک دستور پاسخ میدهد:
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='Says hello')
async def hello(ctx):
await ctx.send(f'Hello {ctx.author.name}!')
@bot.command(name='ping', help='Responds with pong')
async def ping(ctx):
await ctx.send('Pong!')
bot.run('YOUR_TOKEN_HERE')
این چه کار میکند:
- به دیسکورد متصل میشود
- به دستورات
!helloو!pingگوش میدهد - هنگام فعال شدن با یک پیام پاسخ میدهد
برای اجرای آن:
'YOUR_TOKEN_HERE'را با توکن واقعی خود از مرحله ۱ جایگزین کنید- به عنوان
bot.pyذخیره کنید - اجرا کنید:
python bot.py - در دیسکورد،
!helloرا در هر کانالی تایپ کنید - ربات پاسخ میدهد: "Hello [نام شما]!"
مرحله ۵: آزمایش محلی
قبل از استقرار، ربات خود را به صورت محلی (روی رایانه خود) آزمایش کنید.
یک سرور آزمایشی راهاندازی کنید:
- یک سرور دیسکورد خصوصی برای آزمایش ایجاد کنید
- با استفاده از لینک دعوت از مرحله ۲، ربات خود را به آن اضافه کنید
- کد ربات خود را به صورت محلی اجرا کنید
- دستورات را در سرور آزمایشی تایپ کنید
- مراقب خطاها در ترمینال خود باشید؛ آنها را برطرف کنید
خطاهای رایج:
- "Invalid token" — توکن را اشتباه کپی کردهاید یا منقضی شده است. در پورتال توسعهدهندگان دوباره تولید کنید.
- "Missing permissions" — ربات مجوز انجام آن عمل را در این کانال ندارد. مجوزها را اضافه کنید یا از کانالی استفاده کنید که ربات حقوق بیشتری در آن دارد.
- "Intents are not enabled" — باید intents را در پورتال توسعهدهندگان فعال کنید (Message Content Intent، Server Members Intent و غیره).
به طور کامل آزمایش کنید. یک ربات با اشکال در تولید شرمآور است.
مرحله ۶: اضافه کردن دستورات بیشتر
اکنون که اصول اولیه را درک کردید، با ویژگیهای بیشتر گسترش دهید.
مثال پایتون — یک دستور اقتصادی ساده:
@bot.command(name='balance', help='Check your coin balance')
async def balance(ctx):
# در یک ربات واقعی، این یک پایگاه داده را پرس و جو میکند
# در حال حاضر، فقط یک مقدار ساختگی را برگردانید
await ctx.send(f'{ctx.author.name}, you have 100 coins!')
@bot.command(name='roll', help='Roll a dice (1-6)')
async def roll(ctx):
import random
result = random.randint(1, 6)
await ctx.send(f'{ctx.author.name} rolled: **{result}**')
هر دستور یک تابع ساده است. هر تعداد که میخواهید اضافه کنید.
مرحله ۷: استقرار ربات خود
میزبانی محلی برای آزمایش کار میکند، اما وقتی لپتاپ خود را میبندید، ربات شما متوقف میشود. برای اینکه ۲۴/۷ اجرا شود، در یک سرور مستقر کنید.
گزینههای میزبانی رایگان
Replit (آسانترین برای مبتدیان):
- به Replit.com بروید
- Repl جدید ایجاد کنید → پایتون (یا Node.js)
- کد ربات خود را جایگذاری کنید
- روی "Run" کلیک کنید
- Replit آن را به صورت رایگان میزبانی میکند (با محدودیتها: ممکن است پس از عدم فعالیت به خواب رود)
Railway.app (مدرن، قابل اعتماد):
- به Railway.app بروید
- GitHub را متصل کنید (یا فایلها را مستقیماً بارگذاری کنید)
- پروژه جدید ایجاد کنید → ربات خود را انتخاب کنید
- Railway به طور خودکار مستقر میشود
- سطح رایگان شامل ۵ دلار اعتبار ماهانه است
Glitch (مشابه Replit):
- به Glitch.com بروید
- پروژه جدید ایجاد کنید
- کد را جایگذاری کنید
- Glitch آن را در حال اجرا نگه میدارد (در محدوده محدودیتهای سطح رایگان)
مهم: توکن خود را در کدی که به GitHub ارسال میکنید، هاردکد نکنید. از متغیرهای محیطی استفاده کنید:
import os
from dotenv import load_dotenv
load_dotenv()
TOKEN = os.getenv('DISCORD_TOKEN')
bot.run(TOKEN)
یک فایل .env به صورت محلی ایجاد کنید (به .gitignore اضافه کنید تا متعهد نشود):
DISCORD_TOKEN=your_actual_token_here
در Replit/Railway، توکن را به عنوان یک متغیر محیطی مخفی در تنظیمات پلتفرم تنظیم کنید (نه در کد).
اشتباهات رایج مبتدیان
اشتباه ۱: هاردکد کردن توکن هرگز توکن خود را در کدی که به GitHub ارسال میکنید، قرار ندهید. رباتهایی که توکنهایشان فاش شده است، فوراً به خطر میافتند. از متغیرهای محیطی استفاده کنید.
اشتباه ۲: عدم رسیدگی به خطاها ربات شما در ورودی غیرمنتظره خراب میشود. رسیدگی به خطا را اضافه کنید:
@bot.command()
async def divide(ctx, a: int, b: int):
try:
result = a / b
await ctx.send(result)
except ZeroDivisionError:
await ctx.send('Cannot divide by zero!')
except ValueError:
await ctx.send('Please enter valid numbers!')
اشتباه ۳: عدم رعایت محدودیتهای نرخ دیسکورد سرعت ارسال پیامها را محدود میکند. API را اسپم نکنید. بین اقدامات دستهای تأخیر اضافه کنید.
اشتباه ۴: نادیده گرفتن intents بسیاری از رباتهای مبتدی شکست میخورند زیرا intents لازم را در پورتال توسعهدهندگان فعال نمیکنند. قبل از استقرار، intents مورد نیاز ربات خود را بررسی کنید.
اشتباه ۵: دامنه بیش از حد بلندپروازانه سعی نکنید یک سیستم اقتصادی، مدیریت، موسیقی و ۵۰ دستور را در اولین ربات خود بسازید. با ۳-۵ دستور ساده شروع کنید. پس از اینکه راحت شدید، گسترش دهید.
مراحل بعدی
اکنون که یک ربات اساسی دارید:
- گسترش عملکرد: دستورات بیشتری اضافه کنید، از پایگاههای داده برای حفظ دادهها استفاده کنید، منطق پیچیده را پیادهسازی کنید
- استفاده از دستورات اسلش: سینتکس مدرن
/commandبه جای دستورات پیشوندی - اضافه کردن واکنشها: به کاربران اجازه دهید دکمهها را کلیک کنند یا با ایموجیها واکنش نشان دهند
- اتصال یک پایگاه داده: ذخیره دادههای کاربر، سکهها، تنظیمات برگزیده (SQLite برای مبتدیان، PostgreSQL برای مقیاس)
- پیوستن به جوامع: جوامع توسعهدهندگان ربات دیسکورد (reddit.com/r/discordbots، سرور پشتیبانی Discord.js) پاسخ هر سوالی را دارند
منابع
- مستندات discord.js: https://discord.js.org
- مستندات discord.py: https://discordpy.readthedocs.io
- مستندات API دیسکورد: https://discord.com/developers/docs/intro
- آموزشهای YouTube: جستجو کنید "[discord.js/discord.py] tutorial" — مقدار زیادی محتوا
اولین ربات دیسکورد شما یک پروژه آخر هفته است. اولین ربات دیسکورد خوب شما یک ماه تمرین است. اولین ربات شما که توسط ۱۰۰۰ سرور استفاده میشود، ماهها تکرار، توسعه ویژگی و ایجاد جامعه است. اکنون شروع کنید، به طور مداوم تکرار کنید و بیش از حد فکر نکنید.