مهران رجبی: راهنمای جامع برای ساخت یک ربات تلگرام
می خوای یه ربات تلگرام بسازی؟ یه دستیار مجازی که بتونه کارای مختلف رو برات انجام بده یا یه بازی جذاب که دوستات رو سرگرم کنه؟ مهران رجبی راه حل های ساده و کاربردی برای ساخت ربات تلگرام در اختیارت می ذاره.
این مقاله یه راهنمای جامع و کامل برای ساخت ربات تلگرام به زبان ساده هست. از صفر تا صد با مراحل ساخت ربات آشنا می شی و با استفاده از ابزارها و منابعی که ارائه میشه می تونی ربات خودت رو بسازی.
اولین قدم: ایجاد یک حساب کاربری در BotFather
اولین کاری که باید انجام بدی ایجاد یک حساب کاربری در BotFather هست. BotFather یه ربات تلگرامه که برای ساخت و مدیریت ربات های تلگرام استفاده می شه. برای شروع BotFather رو در تلگرام search کن و به کانالش بپیوند.
بعد از پیوستن با تایپ /start
به BotFather احوال پرسی کن. BotFather بهت راهنمایی میده و با تایپ /newbot
می تونی ربات جدیدت رو ایجاد کنی.
نام و نام کاربری ربات: انتخاب مهمی که باید جدی بگیری!
بعد از اینکه /newbot
رو نوشتی BotFather از تو می خواد نام و نام کاربری برای ربات انتخاب کنی. اسم ربات اون چیزیه که کاربران می بینن و باهاش تعامل دارن. نام کاربری هم برای شناسایی ربات تو آدرس ربات استفاده می شه.
اسم ربات باید کوتاه به یاد موندنی و متناسب با هدف ربات باشه. نام کاربری هم باید منحصر به فرد باشه و قبل از اینکه ثبت کنیش حتما بررسی کن که آزاد هست یا نه.
دریافت API Token: کلید ربات شما
بعد از انتخاب نام و نام کاربری BotFather یه API Token بهت میده. این Token مثل کلید رباتت عمل می کنه و تو رو به سرور تلگرام متصل می کنه. این Token رو با دقت ذخیره کن و به هیچ کس نمی ده.
انتخاب پلتفرم برنامه نویسی: انتخابی که به سلیقه شما بستگی داره
برای ساخت ربات تلگرام می تونی از زبان های برنامه نویسی مختلفی مثل پایتون, جاوا, nodejs و … استفاده کنی. اما پایتون به خاطر سادگی و مناسب بودن برای مبتدیان محبوب ترین زبان برای ساخت ربات تلگرام هست.
معرفی کتابخانه Python Telegram Bot: ابزار ساخت ربات شما
یکی از بهترین کتابخانه های پایتون برای ساخت ربات تلگرام Python Telegram Bot هست. این کتابخانه تمام ابزارهای لازم برای ساخت و مدیریت ربات رو در اختیار تو می ذاره و به توسعه ربات به شیوه ساده تر و سریع تر کمک می کنه.
نصب کتابخانه Python Telegram Bot: قدم به قدم به جلو
برای نصب کتابخانه Python Telegram Bot از ترمینال یا خط فرمان دستور زیر رو اجرا کن:
pip install python-telegram-bot
ساخت اولین ربات شما: قدم به قدم با کد
حالا وقتشه که اولین ربات خودتو بسازی. این ربات به سادگی فقط پیام سلام رو در پاسخ به پیام سلام از کاربر نشون میده.
from telegram.ext import Updater, CommandHandler, MessageHandler, Filters
API_TOKEN = YOUR_API_TOKEN # جایگزین API Token خودتون کنید
def start(update, context):
update.message.reply_text(سلام!)
def echo(update, context):
update.message.reply_text(update.message.text)
updater = Updater(API_TOKEN, use_context=True)
dispatcher = updater.dispatcher
dispatcher.add_handler(CommandHandler(start, start))
dispatcher.add_handler(MessageHandler(Filters.text, echo))
updater.start_polling()
updater.idle()
تفسیر کد: هر خط کد رو به طور کامل درک کنید
from telegram.ext import Updater, CommandHandler, MessageHandler, Filters
: این خط کتابخانه های لازم از Python Telegram Bot رو وارد کد می کنه.API_TOKEN = YOUR_API_TOKEN
: در این خط API Token ربات خودتون رو وارد کنید.def start(update, context):
: این تابع برای انجام کار when the user writes /start در ربات شما تعریف شده.update.message.reply_text(سلام!)
: این خط پیام سلام! رو به کاربر ارسال می کنه.def echo(update, context):
: این تابع برای انجام کار when the user writes any message در ربات شما تعریف شده.update.message.reply_text(update.message.text)
: این خط پیامی رو که کاربر ارسال کرده رو به خودش باز می گردونه.updater = Updater(API_TOKEN, use_context=True)
: این خط یک نمونه از Updater رو با استفاده از API Token ایجاد می کنه.dispatcher = updater.dispatcher
: این خط Dispatcher رو که برای مدیریت handlers استفاده می شه ایجاد می کنه.dispatcher.add_handler(CommandHandler(start, start))
: این خط handler برای فرمان/start
رو به Dispatcher اضافه می کنه.dispatcher.add_handler(MessageHandler(Filters.text, echo))
: این خط handler برای پیام text رو به Dispatcher اضافه می کنه.updater.start_polling()
: این خط ربات رو شروع می کنه تا پیام کاربران رو دریافت کنه.updater.idle()
: این خط ربات رو در حالت idle نگهداری می کنه تا به دریافت پیام کاربران ادامه دهد.
اجرای کد: ربات خودتون رو راه اندازی کنید
حالا کد رو در یک فایل با نام bot.py
ذخیره کنید و از ترمینال یا خط فرمان دستور زیر رو اجرا کنید:
python bot.py
بعد از اجرای کد ربات شما شروع به کار می کنه و می تونی با ارسال پیام سلام به ربات پاسخ سلام! رو دریافت کنی.
ساخت ربات با امکانات بیشتر: راهنمای قدم به قدم
حالا که با مقدمات ساخت ربات آشنا شدید وقتشه که ربات خودتون رو با امکانات بیشتر به طور کامل توسعه بدید. در ادامه یه سری مهمترین امکانات و نحوه پیاده سازی شون رو توضیح میدیم:
دریافت اطلاعات کاربر: آشنایی با user data
در بعضی مواقع نیاز دارید که اطلاعات کاربر رو ذخیره کنید. مثلا در یک ربات فروش می توانید اطلاعات سوابق خرید کاربر رو ذخیره کنید. برای این کار از user_data
استفاده می شود.
def start(update, context):
user_data = context.user_data
user_data[name] = update.message.from_user.first_name
update.message.reply_text(fسلام {user_data['name']}!)
ارسال پیام با کلید ها: با کاربران به طور تعاملی صحبت کنید
برای ایجاد ربات تعاملی می توانید از کلید ها استفاده کنید. کلید ها به کاربران گزینه های متفاوتی رو برای انتخاب ارائه می دهند.
from telegram import ReplyKeyboardMarkup, KeyboardButton
def start(update, context):
keyboard = [
[KeyboardButton(گزینه 1), KeyboardButton(گزینه 2)],
[KeyboardButton(گزینه 3)]
]
reply_markup = ReplyKeyboardMarkup(keyboard, resize_keyboard=True)
update.message.reply_text(لطفا یک گزینه رو انتخاب کنید:, reply_markup=reply_markup)
ارسال عکس ویدیو و فایل : محتوای ربات رو غنی کنید
با استفاده از Python Telegram Bot می تونید عکس ویدیو و فایل به کاربران ارسال کنید.
from telegram import PhotoSize
def send_photo(update, context):
photo_file = open('image.jpg', 'rb')
update.message.reply_photo(photo_file)
def send_video(update, context):
video_file = open('video.mp4', 'rb')
update.message.reply_video(video_file)
def send_document(update, context):
document_file = open('document.pdf', 'rb')
update.message.reply_document(document_file)
ساخت ربات با منو : راهنمای کاربران رو ساده کنید
منو به کاربران کمک می کنه تا به راحتی به امکانات ربات دسترسی داشته باشند. منو با استفاده از InlineKeyboardMarkup
پیاده سازی می شود.
from telegram import InlineKeyboardButton, InlineKeyboardMarkup
def start(update, context):
keyboard = [
[InlineKeyboardButton(گزینه 1, callback_data=option1), InlineKeyboardButton(گزینه 2, callback_data=option2)],
[InlineKeyboardButton(گزینه 3, callback_data=option3)]
]
reply_markup = InlineKeyboardMarkup(keyboard)
update.message.reply_text(لطفا یک گزینه رو انتخاب کنید:, reply_markup=reply_markup)
پیاده سازی callback_query : ربات شما به انتخاب کاربر پاسخ می دهد
برای پاسخ به انتخاب کاربر از منو از callback_query
استفاده می شود.
from telegram.ext import CallbackQueryHandler
def handle_callback_query(update, context):
query = update.callback_query
if query.data == option1:
query.message.reply_text(شما گزینه 1 رو انتخاب کردید!)
elif query.data == option2:
query.message.reply_text(شما گزینه 2 رو انتخاب کردید!)
elif query.data == option3:
query.message.reply_text(شما گزینه 3 رو انتخاب کردید!)
dispatcher.add_handler(CallbackQueryHandler(handle_callback_query))
ساخت ربات با چندین مرحله : با کاربران به طور منظم تعامل کنید
در بعضی مواقع نیاز دارید که با کاربران به طور چند مرحله ای تعامل داشته باشید. مثلا برای دریافت اطلاعات از کاربر در چند مرحله می توانید از ConversationHandler
استفاده کنید.
from telegram.ext import ConversationHandler
def start(update, context):
update.message.reply_text(سلام! نام خودتون رو بگین:)
return 1
def get_name(update, context):
user_data = context.user_data
user_data[name] = update.message.text
update.message.reply_text(سن خودتون رو بگین:)
return 2
def get_age(update, context):
user_data = context.user_data
user_data[age] = update.message.text
update.message.reply_text(fسلام {user_data['name']}! سن شما {user_data['age']} ساله.)
return ConversationHandler.END
conversation_handler = ConversationHandler(
entry_points=[CommandHandler(start, start)],
states={
1: [MessageHandler(Filters.text, get_name)],
2: [MessageHandler(Filters.text, get_age)]
},
fallbacks=[MessageHandler(Filters.text, start)]
)
dispatcher.add_handler(conversation_handler)
نکات مهم برای ساخت ربات : موفقیت در ساخت ربات با این نکات
- طراحی ربات : طراحی ربات قبل از نوشتن کد مهمترین قدم برای ساخت ربات موفق هست. هدف و مخاطب ربات رو با دقت تعریف کنید و با ایجاد نقشه و فلوچارت نحوه عملکرد ربات رو شرح دهید.
- سادگی و کاربرپسندی : ربات شما باید ساده و کاربرپسند باشه. از جمله های کوتاه و قابل فهم استفاده کنید و رابط کاربری ربات رو ساده و منظم طراحی کنید.
- تست و رفع خطا : بعد از نوشتن هر قسمت از کد آن را تست کنید و خطاهای آن را رفع کنید. همچنین ربات رو با کاربران مختلف تست کنید تا مطمئن شوید که به درستی کار می کنه.
- مدیریت خطا : برای هر احتمالی خطاهای محتمل رو در نظر بگیرید و با اضافه کردن کد برای مدیریت خطا ربات رو در مقابل خطاها مقاوم کنید.
جدول مقایسه ویژگی های کتابخانه های مختلف : برای انتخاب بهتر مقایسه کنید
کتابخانه | زبان | مزایا | معایب |
---|---|---|---|
Python Telegram Bot | پایتون | ساده کاربرپسند قابلیت های مختلف | بعضی اوقات به روز رسانی ها کند |
Telethon | پایتون | ساده سریع قابلیت های مختلف | 文档 نسبتا کم |
node-telegram-bot-api | nodejs | سریع قابلیت های مختلف | برای مبتدیان مناسب نیست |
نتیجه گیری
ساخت ربات تلگرام با استفاده از Python Telegram Bot و راهنمای جامع این مقاله می تونه تجربه جالبی باشه. با پیاده سازی مراحل و نکاتی که در این مقاله ذکر شد می تونید ربات خودتون رو با امکانات مختلف بسازید و از آن در زمینه های مختلف مثل تجارت آموزش سرگرمی و … استفاده کنید.
پرسش و پاسخ
-
آیا برای ساخت ربات تلگرام نیاز به دانستن زبان برنامه نویسی هست؟
بله برای ساخت ربات تلگرام نیاز به دانستن حداقل یک زبان برنامه نویسی هست. پایتون به دلیل سادگی و قابلیت های مناسب برای ساخت ربات انتخاب مناسبی هست.
-
آیا می توان ربات تلگرام رو با استفاده از ابزارهای بدون کد ساخت؟
بله بعضی از ابزارهای بدون کد مثل Botpress و ManyChat امکان ساخت ربات تلگرام بدون کد رو فراهم می کنند. اما این ابزارها قابلیت های کمتری نسبت به ساخت ربات با کد دارند.
-
آیا برای استفاده از ربات تلگرام نیاز به پرداخت هزینه هست؟
خیر ساخت و استفاده از ربات تلگرام رایگان هست. البته در بعضی مواقع ممکن هست که برای استفاده از برخی امکانات پیشرفته نیاز به پرداخت هزینه باشد.