چگونه یک ربات Discord بسازیم
در این صفحه
ربات Discord برنامهای است که با حساب کاربری خودش وارد Discord میشود و به دستورها پاسخ میدهد، سرور را مدیریت میکند، بازی اجرا میکند یا اطلاعیه منتشر میکند. برای ساختن آن به سه چیز نیاز دارید: یک اپلیکیشن در Developer Portal دیسکورد، چند خط کد و جایی که آن کد اجرا شود.
این راهنما یک ربات کارآمد با دستور اسلش /ping میسازد، با Python (discord.py) یا JavaScript (discord.js) — زبانی را انتخاب کنید که بلدید.
مرحله ۱: ساخت اپلیکیشن و توکن ربات
- Developer Portal را باز کنید. به discord.com/developers/applications بروید، یک اپلیکیشن جدید بسازید و برایش نام بگذارید.
- توکن را بگیرید. در صفحه Bot روی Reset Token کلیک کنید و آن را کپی کنید. Discord آن را فقط یک بار نشان میدهد؛ اگر گمش کردید، دوباره ریست کنید.
- توکن را محرمانه نگه دارید. توکن رمز عبور ربات است: هر کس آن را داشته باشد ربات شما را کنترل میکند. هرگز آن را در کدی که به اشتراک میگذارید قرار ندهید و در Git کامیت نکنید.
مرحله ۲: دعوت ربات به سرور
- صفحه Installation اپلیکیشن خود را باز کنید.
- در تنظیمات پیشفرض نصب برای سرورها، scopeهای
botوapplications.commandsو مجوزهایی را که ربات لازم دارد اضافه کنید — برای این راهنما Send Messages کافی است. - لینک نصبی را که دریافت میکنید باز کنید، سرورتان را انتخاب و تأیید کنید. ربات در فهرست اعضا ظاهر میشود و تا زمانی که کدتان اجرا نشود آفلاین است.
آموزشهای قدیمیتر از OAuth2 > URL Generator با همان دو scope استفاده میکنند؛ این روش هنوز کار میکند.
مرحله ۳الف: نوشتن ربات با Python (discord.py)
discord.py 2.7 به Python 3.8 یا جدیدتر نیاز دارد. آن را نصب کنید و فایل bot.py را بسازید:
pip install discord.py
import os
import discord
from discord import app_commands
class Bot(discord.Client):
def __init__(self):
super().__init__(intents=discord.Intents.default())
self.tree = app_commands.CommandTree(self)
async def setup_hook(self):
await self.tree.sync()
bot = Bot()
@bot.tree.command(description="Replies with Pong!")
async def ping(interaction: discord.Interaction):
await interaction.response.send_message("Pong!")
bot.run(os.environ["DISCORD_TOKEN"])
آن را با توکن در یک متغیر محیطی اجرا کنید، برای مثال DISCORD_TOKEN=your-token python bot.py در Linux یا macOS.
مرحله ۳ب: نوشتن ربات با JavaScript (discord.js)
discord.js 14 به Node.js 18 یا جدیدتر نیاز دارد. در یک پوشه جدید npm install discord.js را اجرا کنید و فایل index.js را بسازید:
const { Client, Events, GatewayIntentBits, REST, Routes, SlashCommandBuilder } = require('discord.js');
const commands = [new SlashCommandBuilder().setName('ping').setDescription('Replies with Pong!').toJSON()];
const client = new Client({ intents: [GatewayIntentBits.Guilds] });
client.once(Events.ClientReady, async (c) => {
await new REST().setToken(process.env.DISCORD_TOKEN).put(Routes.applicationCommands(c.user.id), { body: commands });
console.log(`Logged in as ${c.user.tag}`);
});
client.on(Events.InteractionCreate, async (interaction) => {
if (interaction.isChatInputCommand() && interaction.commandName === 'ping') await interaction.reply('Pong!');
});
client.login(process.env.DISCORD_TOKEN);
آن را با DISCORD_TOKEN=your-token node index.js اجرا کنید. وقتی کنسول Logged in را نشان داد، در سرورتان /ping را تایپ کنید.
توکن را بیرون از کد نگه دارید
- از یک متغیر محیطی یا فایل
.envاستفاده کنید و پیش از اولین کامیت،.envرا به.gitignoreاضافه کنید. - اگر توکن لو رفت، فوراً آن را ریست کنید در صفحه Bot. توکن قدیمی از کار میافتد و شما توکن جدید را در جایی که ربات اجرا میشود بهروز میکنید.
- GitHub مخزنهای عمومی را برای یافتن توکن رباتهای Discord اسکن میکند و آنها را به Discord گزارش میدهد که میتواند باطلشان کند — بنابراین توکنی که اشتباهی push شده، اغلب پیش از آنکه متوجه شوید از کار میافتد.
مرحله ۴: ربات را آنلاین نگه دارید
ربات شما فقط تا زمانی آنلاین است که کدش در حال اجرا باشد. ترمینال را ببندید یا کامپیوتر را خاموش کنید، آفلاین میشود. سه گزینه دارید:
- کامپیوتر خودتان — رایگان، مناسب برای ساخت و تست، اما وقتی کامپیوتر به خواب میرود ربات هم میخوابد.
- پلن رایگان — بیشتر آنها رباتهایی را که تمام ماه اجرا میشوند متوقف یا محدود میکنند؛ مزایا و معایب در هاست رایگان ربات Discord مقایسه شده است.
- هاستینگ ربات — یک سرور کوچک همیشه روشن. در هاستینگ ربات Discord در HytHost پروژهتان را آپلود میکنید، Node.js، Python یا محیط اجرای دیگری را انتخاب میکنید و پنل ربات را اجرا کرده و در صورت کرش، دوباره راهاندازی میکند.
راهنمای کامل، از آپلود تا راهاندازی مجدد خودکار، در چگونه ربات Discord را 24/7 هاست کنیم آمده است.
ربات را بدون روشن گذاشتن کامپیوترتان اجرا کنید: هاستینگ ربات Discord در HytHost از Node.js، Python، Java، Go، C#، Bun و Lavalink پشتیبانی میکند — از €0.89 در ماه.
مشاهده پلنهای هاست رباتپرسشهای متداول
بله. ساخت اپلیکیشن، توکن و کد هزینهای ندارد و discord.py و discord.js رایگان هستند. فقط وقتی هزینه میدهید که بخواهید آن را جایی هاست کنید که آنلاین بماند.
هر کدام را که از قبل بلدید. discord.py و discord.js هر دو بالغ هستند و کل Discord API را پوشش میدهند. اگر هیچکدام را بلد نیستید، خواندن Python سادهتر است؛ JavaScript اکوسیستم کتابخانهای بزرگتری دارد.
بررسی کنید که ربات را با scope applications.commands دعوت کرده باشید و کد، دستورها را همگامسازی کرده باشد. دستورهای سراسری ممکن است کمی طول بکشد تا ظاهر شوند؛ اگر ظاهر نشدند Discord را دوباره باز کنید.
خواندن متن پیامهای عادی به intent Message Content نیاز دارد که باید در Developer Portal روشن و در کد درخواست شود. بدون آن، ربات همچنان دستورهای اسلش، منشنها و پیامهای خصوصی را دریافت میکند.
فوراً آن را در صفحه Bot در Developer Portal ریست کنید. توکن قدیمی از کار میافتد؛ توکن جدید را هر جا ربات اجرا میشود قرار دهید و قدیمی را از کد یا تاریخچه حذف کنید.
ربات شما، آنلاین بدون کامپیوترتان
هاستینگ ربات Discord در HytHost، Node.js، Python، Java، Go، C#، Bun یا Lavalink را با دیتابیس MySQL و بکاپ اجرا میکند — از €0.89 در ماه.
Live chat 8 AM – 11 PM (Chișinău time) · tickets answered during business hoursاین راهنما برایتان مفید بود؟