محتوا:
در این مقاله ما درباره چگونگی ایجاد برنامه برای ربات، انجام اولین احراز هویت در سرور و نوشتن کد عمومی برای نرمالسازی کار صحبت خواهیم کرد. با داشتن "چارچوب"، شما میتوانید دستورات کاربری را اضافه کرده و بلافاصله بررسی کنید که چگونه کار میکنند.
ایجاد برنامه و احراز هویت ربات
سپس درباره دو روش مختلف ایجاد ربات — با استفاده از جاوا اسکریپت و پایتون صحبت خواهد شد. هر یک از آنها ویژگیها و نکات خاص خود را دارند، اما روش ایجاد برنامه و احراز هویت ربات در سرور یکسان باقی میماند، زیرا به زبان برنامهنویسی انتخاب شده بستگی ندارد.پس از این، شما میتوانید به انتخاب کتابخانه و کار با کد بپردازید.
به پورتال توسعهدهندگان دیسکورد بروید
- به لینک بالا بروید تا به صفحه اصلی پورتال توسعهدهندگان در دیسکورد برسید. از اطلاعات ورود شخصی خود برای ورود به حساب کاربری استفاده کنید.
- یک برنامه جدید ایجاد کنید، با کلیک بر روی دکمه "برنامه جدید".
- نام برنامه را وارد کرده و ایجاد آن را تأیید کنید.
- منوی سایت را با کلیک بر روی دکمهای که سه خط افقی دارد، باز کنید.
- از لیست ظاهر شده، بخش تنظیمات "ربات" را انتخاب کنید.
- به افزودن ربات جدید برای این برنامه بپردازید.
- اعلان نمایش داده شده را با کلیک بر روی "بله، انجامش بده" تأیید کنید.
- پس از اتمام، سایت بهروزرسانی میشود و صفحه ربات باز میشود، جایی که میتوانید نام آن را تغییر دهید، توکن را کپی کنید یا آیکونی اضافه کنید که در دیسکورد نیز نمایش داده شود.
- اما در حال حاضر ربات هنوز به عنوان ربات شناخته نشده و مجوزهایی برای آن تنظیم نشده است، بنابراین از همان منو به بخش "OAuth2" بروید.
- در لیست "Scopes" گزینه "ربات" را با علامت زدن تأیید کنید و نوع برنامه ایجاد شده را مشخص کنید.
- بخش بعدی را پیدا کنید — "مجوزهای ربات" و علامتهای تأیید را در کنار تمام مجوزهایی که میخواهید به ربات ایجاد شده بدهید، قرار دهید.
- همین کار را با سایر انواع مجوزها انجام دهید، آنها با دسترسیهای موجود در دیسکورد برای نقشها مطابقت دارند.
- اکنون ربات برای تأیید هویت آماده است. در همین صفحه، خطی که شامل لینک است را پیدا کرده و آن را کپی کنید.
- آن را در نوار آدرس قرار دهید و به آن بروید. در فرم ظاهر شده، سرور را برای تأیید هویت انتخاب کنید. اگر هنوز سرور خود را ندارید، آن را ایجاد کنید و سپس به فرآیند اتصال ربات برگردید.
جزئیات بیشتر: ایجاد سرور در دیسکورد
- با لیست تمام مجوزها آشنا شوید و بر روی "مجوز دادن" کلیک کنید.
- فقط کافی است که کد کپچای نمایش داده شده بر روی صفحه را تأیید کنید.
- سرور مربوطه را در دیسکورد باز کنید و اطمینان حاصل کنید که ربات در لیست اعضا قرار دارد. در حال حاضر او هنوز آفلاین است و راهاندازی آن پس از نوشتن "بدنه" ربات با استفاده از Python یا JS امکانپذیر خواهد بود که در ادامه به آن خواهیم پرداخت.

















انتخاب محیط توسعه
قبل از شروع کار با کد در زبانهای برنامهنویسی ذکر شده، باید بگوییم که شما نیاز به نصب یک ویرایشگر متن یا محیط توسعه خاصی دارید که از سینتکس Python یا JavaScript (بسته به انتخاب شما) پشتیبانی کند. البته میتوانید از "دفترچه یادداشت" استفاده کنید، اما از نظر راحتی، این گزینه به برنامههای تخصصی نمیرسد.
جزئیات بیشتر:
انتخاب محیط توسعه برای برنامهنویسی

گزینه 1: Python و کتابخانه discord
اگر قبلاً با زبانهای برنامهنویسی آشنا نبودهاید یا فقط به صورت سطحی با آنها آشنا هستید، ایجاد ربات برای دیسکورد با Python بهترین انتخاب است. این زبان برنامهنویسی یادگیری آسانتری دارد، فشرده است و سینتکس منطقی و قابل فهمی دارد، بنابراین برای مبتدیان ایدهآل است. علاوه بر این، در اینترنت تعداد زیادی منبع با دستورات مختلف یا رباتهای آماده وجود دارد که میتوانید به راحتی آنها را کپی کرده و در اهداف خود استفاده کنید.در مراحل بعدی، شما یاد خواهید گرفت که چگونه یک "چارچوب" ربات را در پایتون ایجاد کرده و آن را اجرا کنید تا عملکرد آن را بررسی کنید.
مرحله 1: نصب پایتون و کتابخانه discord
به طور پیشفرض در ویندوز، هیچ عملکرد و ابزاری برای کار با پایتون وجود ندارد، بنابراین باید آنها را به صورت جداگانه نصب کنید و فراموش نکنید که کتابخانه discord را که امکان تعامل با عملکردها و دستورات مفید مرتبط با دیسکورد را فراهم میکند، نصب کنید.
- از لینک بالا استفاده کنید تا به وبسایت رسمی پایتون بروید و دکمهای را برای دانلود آخرین نسخه آن فشار دهید.
- در صفحه جدید، نصبکننده برای ویندوز را پیدا کرده و دانلود آن را آغاز کنید.
- منتظر بمانید تا دانلود به پایان برسد و نصبکننده را اجرا کنید.
- میتوانید نصب را بدون تغییرات آغاز کنید، اما حتماً گزینه "Add Python X.X to PATH" را علامتگذاری کنید تا همه متغیرهای محیطی به طور خودکار اضافه شوند و در وارد کردن دستورات بعدی مشکلی پیش نیاید.
- منتظر بمانید تا نصب به پایان برسد و به هر دلیلی کامپیوتر را ریستارت کنید تا همه تغییرات اعمال شوند.
- با روشی که برای شما راحتتر است، "خط فرمان" را باز کنید، مثلاً با جستجوی برنامه در منوی "شروع".
- دستور
pip install discord
را بنویسید و با فشار دادن کلید Enter آن را تأیید کنید. - دانلود فایلها آغاز میشود و در کنسول "خطوطی" نمایش داده میشود. این پنجره را تا پایان دانلود نبندید.
- به محض اینکه اطلاعات "Successfully installed" ظاهر شد، "خط فرمان" را ببندید و به مرحله بعدی بروید.









اگر پایتون را نصب کردهاید، اما دستور برای افزودن کتابخانه متصل کار نمیکند، بهروزرسانی مؤلفه PIP را انجام دهید که در مقاله دیگری در وبسایت ما توضیح داده شده است.در آنجا شما دستورالعملی برای تغییر متغیرهای محیطی پیدا خواهید کرد، اگر این کار در حین نصب انجام نشده باشد.
جزئیات بیشتر: بهروزرسانی PIP برای Python
مرحله 2: ایجاد دیکشنری ربات
در این نسخه ما از دیکشنری برای ربات استفاده خواهیم کرد، یعنی فایل پیکربندی که مقادیر توکن، پیشوند و نام ربات را در نامهای مختلف ذخیره میکند. این کار به طور قابل توجهی کل فرآیند نوشتن کد را ساده میکند و شما را مجبور نمیکند که هر بار اطلاعات برنامه را به یاد بیاورید تا آنها را در یک خط وارد کنید.
- با راهاندازی IDLE شروع کنید و برنامه اضافه شده را از طریق منوی "شروع" پیدا کنید. اگر شما محیط توسعه دیگری را دانلود کردهاید، آن را باز کنید و یک پروژه جدید بر اساس Python ایجاد کنید.
- پس از باز کردن پنجره جدید، منوی "فایل" را فراخوانی کنید و گزینه "فایل جدید" را انتخاب کنید. این کار را میتوانید با استفاده از ترکیب کلیدهای Ctrl + N نیز انجام دهید.
- در پنجره جدید که برای نوشتن کد طراحی شده است، بلوک زیر را وارد کنید:
settings = {
'token': 'توکن شما',
'bot': 'نام ربات',
'id': Client ID ربات، بدون نقل قول،
'prefix': 'پیشوند ربات'
} - اکنون باید اطلاعات لازم برای جایگزینی در دیکشنری را پیدا کنید. ابتدا Client ID برنامه را در وبسایت توسعهدهندگان پیدا کنید. آن را کپی کرده و در خط مربوطه جایگزین کنید.
- منو را فراخوانی کرده و به بخش "ربات" بروید.
- توکن منحصر به فرد آن را با کلیک بر روی دکمه مخصوص این کار کپی کنید.
- توکن را به جای نوشته قرار دهید، همین کار را با نام ربات و پیشوند استفاده شده انجام دهید (پیشوند برای فراخوانی دستورات لازم است و همیشه قبل از آنها قرار میگیرد، به عنوان مثال
!play
، و شما میتوانید علامت تعجب را با هر نماد دیگری جایگزین کنید). - به محض اینکه تمام اطلاعات جایگزین شد، دوباره منوی "فایل" را فراخوانی کرده و گزینه "ذخیره به عنوان" را انتخاب کنید.
- یک پوشه جداگانه برای فایلهای ربات ایجاد کنید، آن را
config
نامگذاری کرده و ذخیرهسازی را تأیید کنید.









مرحله 3: ایجاد بدنه ربات
برای اطمینان از عملکرد پایه ربات، باید یک "بدنه" ایجاد کنید - کد اصلی برای راهاندازی و کار در سرور.به یک فایل جداگانه نیاز دارید که میتوانید هر نامی برای آن انتخاب کنید، اما حتماً باید آن را در همان مکانی که دیکشنری قبلاً ایجاد شده است، ذخیره کنید.
- در محیط توسعه، منوی "File" را باز کنید و یک فایل جدید ایجاد کنید.
- سه دستور را در آن وارد کنید که برای وارد کردن کتابخانههای نصب شده و فایل قبلاً ایجاد شده طراحی شدهاند:
import discord
from discord.ext import commands
from config import settings - خط
bot = commands.Bot(command_prefix = settings['prefix']) # از آنجا که ما پیشوند را در settings مشخص کردهایم، به دیکشنری با کلید prefix مراجعه میکنیم
. - کد اصلی به این صورت است:
@bot.command() # آرگومان pass_context را ارسال نمیکنیم، زیرا در نسخههای قدیمیتر نیاز بود.
async def hello(ctx): # یک تابع ایجاد میکنیم و آرگومان ctx را ارسال میکنیم.
author = ctx.message.author # متغیر author را اعلام کرده و اطلاعات نویسنده را در آن ذخیره میکنیم.await ctx.send(f'Hello, {author.mention}!') # پیامی با ذکر نام نویسنده ارسال میکنیم و به متغیر author مراجعه میکنیم.
- به نظراتی که بعد از علامت "#" آمدهاند، توجه کنید — آنها به شما کمک میکنند تا با هدف هر خط آشنا شوید.
- دستور برای اجرا به این صورت است:
bot.run(settings['token']) # به دیکشنری settings با کلید token مراجعه میکنیم تا توکن را دریافت کنیم
. - پس از اتمام، دوباره منوی آشنا را باز کرده و به ذخیره فایل بروید.
- برای آن هر نامی را تعیین کنید و در پوشه پیکربندی قرار دهید.







سپس کد کامل را که در بالا به آن اشاره شد، مشاهده میکنید، بنابراین در صورت نیاز میتوانید به سادگی آن را کپی کنید.

import discord
from discord.ext import commands
from config import settings
bot = commands.Bot(command_prefix = settings['prefix'])
@bot.command() # آرگومان pass_context را ارسال نمیکنیم، زیرا در نسخههای قدیمیتر نیاز بود.
async def hello(ctx): # یک تابع ایجاد میکنیم و آرگومان ctx را ارسال میکنیم.
author = ctx.message.author # متغیر author را اعلام کرده و اطلاعات نویسنده را در آن ذخیره میکنیم.
await ctx.send(f'Hello, {author.mention}!') # پیامی با ذکر نام نویسنده ارسال میکنیم و به متغیر author مراجعه میکنیم.
bot.run(settings['token']) # به دیکشنری settings با کلید token مراجعه میکنیم تا توکن را دریافت کنیم
بهطور اضافی، مشخص کنیم که میتوانید از یک طرح جایگزین استفاده کنید و از فایل دیکشنری خلاص شوید و بدنه کمی متفاوتی برای ربات دریافت کنید.لطفاً بررسی کنید که آیا این کد بیشتر به شما میخورد. خطوط مشخص شده با توکن باید مطابق با نیاز شما ویرایش شوند.
import discord
from discord.ext import commands
TOKEN = 'توکن شما'
bot = commands.Bot(command_prefix='!')
@bot.command(pass_context=True) # اجازه میدهیم آرگومانها منتقل شوند
async def test(ctx, arg): # یک تابع غیرهمزمان برای ربات ایجاد میکنیم
await ctx.send(arg) # آرگومان را به عقب ارسال میکنیم
bot.run(TOKEN)
مرحله ۴: راهاندازی ربات
اکنون میتوانید ربات را برای بررسی راهاندازی کنید، برای این کار به فایل اصلی ایجاد شده در مرحله ۳ نیاز دارید. آن را مستقیماً از طریق محیط توسعه کامپایل کنید یا "خط فرمان" را فراخوانی کرده و در آن python bot.py
را وارد کنید، جایی که bot.py نام فایل ایجاد شده است. اگر فایل پیدا نشد، مسیر کامل آن را مشخص کنید، به عنوان مثال python C:UsersUSER_NAMEbot.py
.

به دیسکورد بروید و وضعیت فعلی ربات را بررسی کنید. او باید در لیست اعضا در بخش "آنلاین" همراه با نقطه سبز نمایش داده شود.

از منابع باز یا دانش خود استفاده کنید تا دستورات را برای ربات بنویسید یا وظایف دیگری را که باید انجام دهد، پیادهسازی کنید. برای این کار فایل اصلی آن را ویرایش کنید یا فایلهای دیگری ایجاد کنید و همه را به یک پروژه واحد متصل کنید.
گزینه ۲: جاوا اسکریپت و discord.js
گزینه بعدی برای ایجاد ربات برای دیسکورد — استفاده از JS و کتابخانه متصل به discord.js است که تمام اجزای لازم برای کار با رباتها را اضافه میکند. اصل کار تنها با ابزارها و تفاوت در نحو زبانهای برنامهنویسی متفاوت است، اما تقریباً مشابه باقی میماند.
مرحله ۱: نصب Node.js و discord.js
برای گسترش قابلیتهای JS و تبدیل آن به یک زبان برنامهنویسی عمومی، پلتفرم Node.js به کمک میآید که نصب آن را در اولویت قرار میدهیم.برای این کار، سادهترین الگوریتم اقدامات را انجام دهید:
- صفحه Node.js را در اینترنت باز کنید و آخرین نسخه پیشنهادی برای دانلود را انتخاب کنید.
- منتظر دریافت فایل اجرایی باشید و آن را اجرا کنید.
- به دستورالعملهای نمایش داده شده روی صفحه عمل کنید، نصب را کامل کنید و کامپیوتر را راهاندازی مجدد کنید.
- بر روی "شروع" کلیک کنید و از طریق جستجو، برنامه کلاسیک "خط فرمان" را پیدا کنید.
- در آن، دستور
npm init
را بنویسید و با فشار دادن Enter آن را فعال کنید. - یک بسته استاندارد با اطلاعات کاربری ایجاد کنید و پس از وارد کردن هر پارامتر، با فشار دادن Enter ادامه دهید، یا همه چیز را به حالت پیشفرض بگذارید.
- زمانی که همه پارامترهای بسته تعیین شدند، یک هشدار دریافت خواهید کرد که باید با فشار دادن دوباره Enter آن را تأیید کنید.
- دستور
npm install
را برای نصب اجزای استاندارد گمشده وارد کنید. - منتظر اتمام بارگذاری آنها و نمایش خط ورودی باشید.
- بنویسید
npm install discord.js
. - به محض اینکه این دستور نیز اجرا شد، پوشه کاربری خود را باز کنید و از وجود فایلهای ایجاد شده بسته با فرمت JSON اطمینان حاصل کنید.











مرحله 2: کار با فایلهای ربات
تمامی اقدامات مربوط به فایلهای ربات و کد برنامه را در یک مرحله بررسی خواهیم کرد، زیرا تقسیم آنها به چندین مرحله منطقی نیست.شما به سه فایل اصلی نیاز دارید که همه توابع ضروری در آنها نوشته میشوند: یکی مسئول پیکربندی ربات است، دومی برای "بدنه" و سومی لیست دستورات اضافه شده را ذخیره میکند.
- برای شروع، فایلهای "bot.js" و "config.json" را در یک دایرکتوری ایجاد کنید.
- فایل "config.json" را با ویرایشگر متن یا محیط توسعه باز کنید و خطوط زیر را به آن اضافه کنید:
{
"token" : "توکن_شما",
"prefix" : "پیشوند_شما"
}بنابراین، عبارات داخل کوتیشنهای دوتایی را با توکن منحصر به فرد ربات و پیشوند مورد نظر خود جایگزین کنید.
- فایل "bot.js" را برای ویرایش باز کنید (البته، نام آن میتواند هر چیزی باشد). این بلوک کد را در آن وارد کنید.
const Discord = require('discord.js'); // کتابخانه discord.js را متصل میکنیم
const robot = new Discord.Client(); // اعلام میکنیم که robot یک ربات است
const comms = require("./comms.js"); // فایل حاوی دستورات ربات را متصل میکنیم
const fs = require('fs'); // ماژول سیستم فایل node.js را متصل میکنیم
let config = require('./config.json'); // فایل حاوی پارامترها و اطلاعات را متصل میکنیم
let token = config.token; // "توکن" را از آن استخراج میکنیم
let prefix = config.prefix; // "پریفیکس" را از آن استخراج میکنیمrobot.on("ready", function() {
/* در صورت راهاندازی موفق، پیامی در کنسول نمایش داده میشود "[نام ربات] راهاندازی شد!" */
console.log(robot.user.username + " راهاندازی شد!");
});robot.on('message', (msg) => { // واکنش به پیامها
if (msg.author.username != robot.user.username && msg.author.discriminator != robot.user.discriminator) {
var comm = msg.content.trim() + " ";
var comm_name = comm.slice(0, comm.indexOf(" "));
var messArr = comm.split(" ");
for (comm_count in comms.comms) {
var comm2 = prefix + comms.comms[comm_count].name;
if (comm2 == comm_name) {
comms.comms[comm_count].out(robot, msg, messArr);
}
}
}
});robot.login(token); // مجوز ربات
نظرات مربوط به خطوط را که بعد از اسلشها ("//") آمدهاند، بخوانید تا خودتان با هدف هر کدام آشنا شوید.
- یک فایل سوم ایجاد کنید — "comms.js", که در آینده تمام دستورات لازم در آن ذخیره خواهد شد.
- در آن بلوک اصلی را قرار دهید که در آینده گسترش خواهد یافت:
const config = require('./config.json'); // فایل حاوی پارامترها و اطلاعات را متصل میکنیم
const Discord = require('discord.js'); // کتابخانه discord.js را متصل میکنیم
const prefix = config.prefix; // "پریفیکس" را استخراج میکنیم// دستورات //
function test(robot, mess, args) {
mess.channel.send('Test!')
}// لیست دستورات //
var comms_list = [{
name: "test",
out: test,
about: "دستور آزمایشی"
}];// Name - نام دستوری که ربات به آن واکنش نشان میدهد
// Out - نام تابع مربوط به دستور
// About - توضیحات دستورmodule.exports.comms = comms_list;





برای ادامه کار با دستورات کافی است که توابع آنها را اعلام کرده و لیست را با بلوکهای کد مربوطه پر کنید.به عنوان مثال، فایل آماده "comms.js" به این صورت است:
const config = require('./config.json');
const Discord = require('discord.js');
const prefix = config.prefix;
const versions = config.versions;
// دستورات //
function test(robot, mess, args) {
mess.channel.send("آزمایش!")
}
function hello(robot, mess, args) {
mess.reply("سلام!")
}
// لیست دستورات //
var comms_list = [{
name: "test",
out: test,
about: "دستور آزمایشی"
},
{
name: "hello",
out: hello,
about: "دستور برای سلام کردن!"
}
}
module.exports.comms = comms_list;
مرحله 3: راهاندازی ربات
اولین اقدامات با ربات در جاوا اسکریپت به پایان رسیده است، بنابراین میتوانید آن را راهاندازی کرده و عملکرد آن را بررسی کنید. برای این کار باید مراحل زیر را انجام دهید:
- منوی "شروع" را باز کنید و از طریق جستجو "خط فرمان" را پیدا کرده و آن را راهاندازی کنید.
- وارد کنید
node bot.js
، جایی که bot.js نام فایل اصلی کد برای ربات است. اگر در پوشه خانگی شما نیست، مسیر کامل فایل را مشخص کنید یا ابتدا به محل آن بروید و از دستورcd
استفاده کنید.


نمونههای دستورات مفید
در پایان این نسخه به طور خلاصه درباره دو دستور مفید که ممکن است در تنظیم ربات به کار بیایند، صحبت خواهیم کرد. میتوانید از آنها به عنوان دستورات آزمایشی استفاده کنید، زمانی که کار بر روی پروژه هنوز در مرحله توسعه است. اولین دستور — !clear
— تعداد مشخصی از پیامها را در چت حذف میکند.کد او به صورت زیر است:
const arggs = mess.content.split(' ').slice(1); // تمام آرگومانها پس از نام فرمان با پیشوند
const amount = arggs.join(' '); // تعداد پیامهایی که باید حذف شوند
if (!amount) return mess.channel.send('شما مشخص نکردید که چند پیام باید حذف شود!'); // بررسی اینکه آیا پارامتر تعداد مشخص شده است
if (isNaN(amount)) return mess.channel.send('این عدد نیست!'); // بررسی اینکه آیا ورودی کاربر عدد است
if (amount > 100) return mess.channel.send('شما نمیتوانید 100 پیام را به طور همزمان حذف کنید'); // بررسی اینکه آیا ورودی کاربر عددی بزرگتر از 100 است
if (amount {
mess.channel.bulkDelete(messages)
mess.channel.send(`${amount} پیام حذف شد!`)
})
};
delete_messages(); // فراخوانی تابع غیرهمزمان
دومین فرمان برای پرتاب سکه طراحی شده و با وارد کردن !heads_or_tails
در چت اجرا میشود. اینجا کد چندان پیچیده نیست، زیرا اقدامات کمی وجود دارد و ربات باید تنها به یک درخواست پاسخ دهد بدون تعداد زیادی متغیر.
mess.channel.send('سکه در حال پرتاب است...')
var random = Math.floor(Math.random() * 4) + 1; // اعلام متغیر random - او یک عدد تصادفی از 1 تا 3 محاسبه میکند
if (random === 1) { // اگر عدد 1 محاسبه شود، عقاب میافتد.
mess.channel.send(':full_moon: عقاب!')
} else if (random === 2) { // اگر عدد 2 محاسبه شود، پشت میافتد.
mess.channel.send(':new_moon: پشت!')
} else if (random === 3) { // اگر عدد 3 محاسبه شود، سکه به لبه میافتد.
mess.channel.send(':last_quarter_moon: سکه به لبه افتاد!')
}
در اینترنت میتوانید دیگر فرمانهای مفید را پیدا کنید که میخواهید به ربات خود اضافه کنید، اما برای کار با آنها به دانش پیشرفتهای در JavaScript یا Python نیاز دارید تا بتوانید به تنهایی خطاها را اصلاح کنید یا کد را مطابق با نیاز خود ویرایش کنید.