كيف تصنع بوت Discord
في هذه الصفحة
بوت Discord هو برنامج يسجّل الدخول إلى Discord بحسابه الخاص ويردّ على الأوامر أو يشرف على الخادم أو يدير الألعاب أو ينشر التحديثات. تحتاج لصنعه إلى ثلاثة أشياء: تطبيق في Developer Portal الخاص بـ Discord، وبضعة أسطر من الكود، ومكان يعمل فيه هذا الكود.
يبني هذا الدليل بوتًا يعمل بأمر slash هو /ping، بلغة Python (discord.py) أو JavaScript (discord.js) — اختر اللغة التي تعرفها.
الخطوة 1: أنشئ التطبيق وتوكن البوت
- افتح Developer Portal. انتقل إلى discord.com/developers/applications، وأنشئ تطبيقًا جديدًا وامنحه اسمًا.
- احصل على التوكن. في صفحة Bot، انقر Reset Token وانسخه. يعرضه Discord مرة واحدة فقط؛ وإذا فقدته فأعد تعيينه من جديد.
- أبقِ التوكن سرّيًا. إنه كلمة مرور البوت: من يملكه يتحكّم في بوتك. لا تلصقه أبدًا في كود تشاركه ولا ترفعه إلى Git.
الخطوة 2: ادعُ البوت إلى خادمك
- افتح صفحة Installation في تطبيقك.
- ضمن إعدادات التثبيت الافتراضية للخوادم، أضف النطاقين
botوapplications.commands، والصلاحيات التي يحتاجها البوت — تكفي Send Messages لهذا الدليل. - افتح رابط التثبيت الذي يظهر لك، واختر خادمك ووافق. يظهر البوت في قائمة الأعضاء غير متصل حتى يعمل الكود الخاص بك.
تستخدم الشروحات الأقدم OAuth2 > URL Generator مع النطاقين نفسيهما؛ وما زالت هذه الطريقة تعمل.
الخطوة 3أ: اكتب البوت بلغة 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.
الخطوة 3ب: اكتب البوت بلغة 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قبل أول commit. - إذا تسرّب التوكن فأعد تعيينه فورًا من صفحة Bot. يتوقف التوكن القديم عن العمل، فتحدّثه في المكان الذي يعمل فيه البوت.
- يفحص GitHub المستودعات العامة بحثًا عن توكنات بوتات Discord ويبلّغ Discord عنها، ويمكن لـ Discord إلغاؤها — لذلك غالبًا ما يتوقف التوكن المرفوع بالخطأ عن العمل قبل أن تلاحظ.
الخطوة 4: أبقِ بوتك متصلًا
يبقى بوتك متصلًا فقط ما دام الكود يعمل. أغلق الطرفية أو أطفئ الحاسوب، فيصبح غير متصل. أمامك ثلاثة خيارات:
- حاسوبك الشخصي — مجاني ومناسب للتطوير والاختبار، لكن البوت ينام عندما ينام الحاسوب.
- خطة مجانية — معظمها يوقف البوتات التي تعمل طوال الشهر أو يقيّدها؛ وتجد المقارنة في استضافة بوتات 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 منظومة مكتبات أكبر.
تحقّق من أنك دعوته مع النطاق applications.commands وأن الكود قام بمزامنة الأوامر. قد تستغرق الأوامر العامة لحظة لتظهر؛ وإن لم تظهر فأعد تشغيل Discord.
قراءة نص الرسائل العادية تتطلب الـ intent المسمّى Message Content، مفعّلًا في Developer Portal ومطلوبًا في الكود. وبدونه يظل البوت يستقبل أوامر slash والإشارات والرسائل الخاصة.
أعد تعيينه فورًا من صفحة 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هل كان هذا الدليل مفيدًا؟