loading...
آموزش کامل ساخت ربات تلگرام با پایتون

آموزش کامل ساخت ربات تلگرام با پایتون

 محمدرضا احمی

محمدرضا احمی

تاریخ انتشار : دوشنبه 15 آذر 1400

ساخت ربات تلگرام امروزه یکی از فعالیت‌های جذاب در دنیای برنامه‌نویسی به شمار می‌آید که دارای کاربردهای زیادی نیز می‌باشد. شما می‌توانید پروژه‌های مختلف را تحت عنوان ربات تلگرام طراحی کرده و پیاده‌سازی کنید. این پروژه علاوه بر این که می‌توانند مهارت برنامه‌نویسی شما را بهبود دهند بلکه در بسیاری از موارد می‌توانند درآمد بسیار خوبی را نیز برای شما داشته باشند.

 

در حال حاضر زبان‌های برنامه‌نویسی بسیار زیادی برای ساخت انواع ربات‌های تلگرامی مورداستفاده قرار می‌گیرند که هریک از آنها دارای ویژگی‌ها و کاربردهای خاص خود هستند.

 

یکی از محبوب‌ترین زبان‌های برنامه‌نویسی که برای انجام این کار استفاده می‌شود زبان برنامه‌نویسی پایتون است. ساخت ربات تلگرامی با پایتون کار چندان سختی نیست چراکه در این زبان کتابخانه‌ای جذاب برای انجام این کار طراحی شده است که به شما کمک می‌کند تا بتوانید بهترین ربات‌های تلگرامی را طراحی کنید. اگر شما هم جز آن دسته از افرادی هستید که علاقه‌مند به یادگیری نحوه طراحی و ساخت ربات‌های تلگرامی با استفاده از زبان برنامه‌نویسی پایتون هستید به شما پیشنهاد می‌کنیم ادامه این مطلب را بادقت مطالعه کنید تا اطلاعات و مهارت موردنیاز برای انجام این کار را به دست بیاورید.

 

بهترین کتابخانه پایتون برای ساخت ربات تلگرام

 

بهترین کتابخانه پایتون برای ساخت ربات تلگرام

 

اگر شما هم علاقه‌مند به ساخت ربات تلگرام در زبان برنامه‌نویسی پایتون هستید حتما باید بدانید که یکی از بهترین کتابخانه‌هایی که برای انجام این کار وجود دارد کتابخانه Python-telegram-bot است. این کتابخانه قابلیت‌ها و ویژگی‌های مختلفی را به شما ارائه می‌دهد که بدون شک ساخت انواع ربات‌های تلگرامی را برای شما ساده‌تر می‌کند. معرفی کتابخانه پایتون برای ساخت ربات تلگرامی از اهمیت زیادی برخوردار است چراکه در این کتابخانه انواع مختلفی از توابع از پیش تعریف شده وجود دارند که دیگر نیازی به بازنویسی آنها نخواهید داشت و می‌توانید در زمان خود صرفه‌جویی کنید.

 

در ادامه معرفی کتابخانه Python-telegram-bot نحوه راه‌اندازی و استفاده از بخش‌های مختلف این کتابخانه را توضیح خواهیم داد که آشنایی با این موارد می‌تواند به شما کمک کند تا در کوتاه‌ترین زمان ممکن بتوانید کدهای خود را به زبان پایتون نوشته و از ابزارهای بی‌نظیری که در این کتابخانه برای شما جمع‌آوری شده‌اند استفاده کنید.

 

راه‌اندازی اولیه برای ساخت ربات تلگرام در پایتون

 

راه‌اندازی اولیه برای ساخت ربات تلگرام در پایتون

 

در اولین بخش از معرفی کتابخانه پایتون برای ساخت ربات تلگرامی قصد داریم راه‌اندازی اولیه این کتابخانه را به شما توضیح دهیم و شما را بیشتر با ساختار این کتابخانه آشنا کنیم. به‌طورکلی برای ساخت ربات تلگرام و راه‌اندازی یک ربات اولیه شما باید یک مکالمه را با ربات BotFather آغاز کنید. این ربات به شما کمک می‌کند تا بتوانید ربات خود را ایجاد کنید.

 

در گام اول شما باید وارد ربات تلگرامی @BotFather شده و عبارت @botfather را در تلگرام جستجو کنید. با ورود به این ربات ابتدا گزینه Start را انتخاب کرده و سپس با اجرای دستور /newbot اقدام به ساخت یک ربات جدید در این ربات کنید. در این بخش شما باید نامی که قصد دارید برای رباتتان نمایش داده شود را انتخاب کرده و سپس یک نام کاربری را نیز برای آن مشخص کنید.

 

پس از آنکه مراحل بالا را به‌درستی طی کردید ربات BotFather یک پیام برای شما ارسال می‌کند که حاوی توکن مربوط به ربات جدید شما می‌باشد. سعی کنید این توکن را در اختیار هیچ‌کسی قرار ندهید و حتما آن را در یک‌جای امن نگهداری کنید. دقت داشته باشید که هر شخصی به این توکن دسترسی پیدا کند می‌تواند بعدها ربات شما را دست‌کاری کند.

 

نصب پکیج برای شروع کدنویسی ربات تلگرام با پایتون

 

نصب پکیج برای شروع کدنویسی ربات تلگرام با پایتون

 

برای شروع کدنویسی و ساخت ربات تلگرام با پایتون ابتدا باید یک دایرکتوری جدید برای کدهای خود ایجاد کنید. برای این کار ترمینال را بازکرده و دستور زیر را در آن اجرا کنید:

mkdir echo-bot/

cd echo-bot/

 

ما در این آموزش قصد داریم از محیط مجازی pipenv استفاده کنیم. پس پیش از هر چیز اطمینان حاصل کنید که این محیط مجازی را روی سیستم خود نصب کرده‌اید.

همان‌طور که در بخش معرفی کتابخانه Python-telegram-bot نیز بیان کردیم ما در این آموزش قصد داریم از پکیج python-telegram-bot برای تعامل با API تلگرام استفاده کنیم. برای نصب این پکیج روی سیستم خود کافی است که دستور زیر را وارد کنید:

 

pipenv install python-telegram-bot

 

با اجرای این دستور پکیج python-telegram-bot برای شما نصب می‌شود و شما می‌توانید به‌تمامی توابعی که در داخل آن تعریف شده است دسترسی داشته باشید و از آن برای تعامل با API تلگرام استفاده کنید. حال کافی است که یک فایل پایتون با نام bot.py ایجاد کنید تا بتوانیم کدهای خود را در داخل آن قرار داده و اجرا کنیم.

 

هدف از ساخت این ربات تلگرامی در پایتون

 

هدف از ساخت این ربات تلگرامی در پایتون

 

رباتی که ما قصد طراحی آن را داریم یک ربات ساده برای پاسخ‌دادن به پیام‌های تلگرام است. برای این کار ابتدا چند تابع handler تعریف کرده و سپس این توابع را به‌عنوان آرگومان به Dispatcher ارسال می‌کنیم. در ادامه نیز ربات شروع به کار می‌کند و تا زمانی که ما Ctrl-C در خط فرمان استفاده نکرده‌ایم نیز ربات در حال اجرا باقی می‌ماند.

 

در ابتدا برای ساخت ربات تلگرامی با پایتون باید برخی از کتابخانه‌ها و پکیج‌های موردنیاز خود را import کنیم. برای این کار کدهای زیر را می‌نویسیم:

 

import logging



from telegram.ext import Updater, CommandHandler, MessageHandler, Filters

 

در ادامه برای فعال‌کردن قابلیت log کردن باید از قطعه کد زیر استفاده کنیم:

 

logging.basicConfig(format='%(asctime)s - %(name)s - %(levelname)s - %(message)s',  level=logging.INFO)

logger = logging.getLogger(__name__)

 

تعریف توابع handler برای ساخت ربات تلگرام

 

تعریف توابع handler برای ساخت ربات تلگرام

 

برای ساخت ربات تلگرام ما نیازمند توابع handler هستیم که بتوانیم حالات مختلف را با استفاده از این توابع تعریف کنیم. این توابع معمولا دو آرگومان دریافت می‌کنند که اولی update و دومی context است. علاوه بر این Error handler ها یک شی TelegramError نیز دریافت می‌کنند که برای نمایش خطا در کدها مورداستفاده قرار می‌گیرد. برای تعریف این توابع قطعه کد زیر را در فایل پایتون خود وارد کنید:

 

def start(update, context):

    """Send a message when the command /start is issued."""

    update.message.reply_text('Hi!')





def help(update, context):

    """Send a message when the command /help is issued."""

    update.message.reply_text('Help!')





def echo(update, context):

    """Echo the user message."""

    update.message.reply_text(update.message.text)

 

def error(update, context):

    """Log Errors caused by Updates."""

    logger.warning('Update "%s" caused error "%s"', update, context.error)

 

تابع start زمانی که دستور /start صادر می‌شود یک پیام جدید را ارسال می‌کند.

 

تابع help زمانی که دستور /help صادر می‌شود یک پیام جدید را ارسال می‌کند.

 

تابع echo پیامی که کاربر ارسال کرده است را چاپ می‌کند.

 

error خطاهایی که توسط به‌روز‌رسانی به وجود می‌آیند را لاگ می‌کند.

 

تابع main و کدهای آن برای ساخت ربات تلگرام

 

تابع main و کدهای آن برای ساخت ربات تلگرام

 

این تابع برای ساخت ربات تلگرامی در پایتون ابتدا ربات را راه‌اندازی می‌کند. در گام بعدی اقدام به ساخت Updater کرده و توکن مربوط به رباتی که شما ایجاد کرده‌اید را به‌عنوان آرگومان ارسال می‌کند. دقت داشته باشید که در این جا حتما باید use_context=True تنظیم شود تا از فراخوانی‌های مبتنی بر context جدید استفاده کند.

 

updater = Updater("TOKEN", use_context=True)

 

در گام بعدی باید مطابق قطعه کد زیر dispatcher را دریافت کنیم تا بتوانیم handlerها را ثبت کنیم:

 

dp = updater.dispatcher

 

مطابق با پاسخ‌های متفاوتی که از تلگرام دریافت می‌شود ما handlerها را به dispatcher اضافه می‌کنیم:

 

dp.add_handler(CommandHandler("start", start))

dp.add_handler(CommandHandler("help", help))

 

در صورتی که پیامی که از تلگرام دریافت می‌شود ما با استفاده از handler مخصوص اقدام به چاپ‌کردن آن می‌کنیم که این کار به شکل زیر صورت می‌گیرد:

 

dp.add_handler(MessageHandler(Filters.text, echo))

 

در صورت بروز هرگونه خطایی در کدهایی که نوشته‌ایم یا در پیامی که از تلگرام دریافت می‌کنیم اقدام به log گرفتن از آن خطا خواهیم کرد:

 

dp.add_error_handler(error)

 

حال می‌توانیم از قطعه کد زیر استفاده کنیم تا این ربات را راه‌اندازی کرده و از آن استفاده کنیم:

 

updater.start_polling()

 

دقت داشته باشید که پس از اجرای این ربات تا زمانی که از Ctrl-C استفاده کنید یا این که فرایند شما SIGINT یا SIGABRT را دریافت کند اجرا خواهد شد؛ بنابراین در زمان ساخت ربات تلگرام با زبان برنامه‌نویسی پایتون حتما باید به این نکته مهم توجه کنید تا بتوانید در هر لحظه به‌راحتی رباتی که ساخته‌اید را متوقف کنید. این دو راهکار در بیشتر مواقع می‌توانند رباتی که شما ساخته‌اید را متوقف کنند چرا که start_polling() تابع مسدودکننده‌ای نیست و می‌توان به‌سادگی این ربات را متوقف کرد. در انتها نیز قطعه کد زیر را وارد می‌کنیم:

 

updater.idle()

 

حال تنها کاری که باید انجام دهیم این است که تابع main() که قطعه کدهای بالا را داخل آن وارد کرده‌ایم را باید فراخوانی کنیم:

 

if __name__ == '__main__':

    main()

 

بنابراین شکل کلی کدهای ما به‌صورت زیر خواهد بود:

 

import logging



from telegram.ext import Updater, CommandHandler, MessageHandler, Filters



# Enable logging

logging.basicConfig(format='%(asctime)s - %(name)s - %(levelname)s - %(message)s',

                    level=logging.INFO)



logger = logging.getLogger(__name__)





# Define a few command handlers. These usually take the two arguments update and

# context. Error handlers also receive the raised TelegramError object in error.

def start(update, context):

    """Send a message when the command /start is issued."""

    update.message.reply_text('Hi!')





def help(update, context):

    """Send a message when the command /help is issued."""

    update.message.reply_text('Help!')





def echo(update, context):

    """Echo the user message."""

    update.message.reply_text(update.message.text)





def error(update, context):

    """Log Errors caused by Updates."""

    logger.warning('Update "%s" caused error "%s"', update, context.error)





def main():

    """Start the bot."""

    # Create the Updater and pass it your bot's token.

    # Make sure to set use_context=True to use the new context based callbacks

    # Post version 12 this will no longer be necessary

    updater = Updater("TOKEN", use_context=True)



    # Get the dispatcher to register handlers

    dp = updater.dispatcher



    # on different commands - answer in Telegram

    dp.add_handler(CommandHandler("start", start))

    dp.add_handler(CommandHandler("help", help))



    # on noncommand i.e message - echo the message on Telegram

    dp.add_handler(MessageHandler(Filters.text, echo))



    # log all errors

    dp.add_error_handler(error)



    # Start the Bot

    updater.start_polling()



    # Run the bot until you press Ctrl-C or the process receives SIGINT,

    # SIGTERM or SIGABRT. This should be used most of the time, since

    # start_polling() is non-blocking and will stop the bot gracefully.

    updater.idle()





if __name__ == '__main__':

    main()

 

 

نکات مهمی که باید درباره کدهای بالا برای ساخت ربات تلگرام بدانید

 

نکات مهمی که باید درباره کدهای بالا برای ساخت ربات تلگرام بدانید

 

دقت داشته باشید در قطعه کدی که ما در بخش قبلی وارد کردیم شما باید به‌جای مقدار TOKEN، توکنی که از طریق ربات تلگرام botfather دریافت کرده‌اید را وارد کنید تا بتوانید ربات خود را راه‌اندازی کرده و از آن استفاده کنید. عملیاتی که این ربات انجام می‌دهد بسیار ساده است و در واقع متن هر پیامی که دریافت می‌کند را کپی کرده و مجددا همان را ارسال می‌کند.

 

بااین‌حال باید بدانید که در ساخت ربات تلگرام با استفاده از زبان برنامه‌نویسی پایتون و کتابخانه‌ای که در این مطلب به شما معرفی کردیم عملکردهای دیگری نیز وجود دارند که می‌توانند به شما کمک کنند تا ربات‌های تلگرامی بسیار پیشرفته‌تری بنویسید. شما با داشتن دانش کافی در زمینه زبان برنامه‌نویسی پایتون و همین‌طور آشنایی با توابع مختلفی که در این کتابخانه وجود دارند می‌توانید ربات‌هایی را طراحی کنید که عملیات‌های پیشرفته‌تری در تلگرام انجام دهند.

 

صحبت پایانی

 

ساخت ربات تلگرام امروزه با استفاده از زبان‌های مختلف برنامه‌نویسی انجام می‌شود که هریک از این زبان‌ها ویژگی‌ها و کاربردهای خاص خود را دارند. از جمله رایج‌ترین زبان‌هایی که امروزه برای طراحی ربات تلگرامی وجود دارند می‌توان به پی‌اچ‌پی و پایتون اشاره کرد. زبان برنامه‌نویسی پایتون یکی از محبوب‌ترین زبان‌های برنامه‌نویسی در دنیا است که امروزه بسیاری از توسعه‌دهندگان و برنامه‌نویسان از آن استفاده می‌کنند. یادگیری این زبان به علت سینتکس بسیار ساده‌ای که دارد راحت است و همین عامل نیز باعث می‌شود تا افرادی که قصد یادگیری و شروع برنامه‌نویسی را دارند این زبان را انتخاب کنند.

 

کمک‌گرفتن از یک کتابخانه در زبان پایتون برای طراحی و ساخت انواع ربات‌های تلگرامی می‌تواند به شما کمک کند تا کدهای خود را سریع‌تر بنویسید و نیازی به بازنویسی بسیاری از کدهایی که در این کتابخانه‌ها نوشته شده‌اند نخواهید داشت. علاوه بر مثالی که ما در این مطلب از ساخت یک ربات تلگرامی به شما ارائه دادیم شما می‌توانید ربات‌های دیگری را نیز طراحی کنید.

 

اگر شما هم جز آن دسته از افرادی هستید که قصد دارید اطلاعات خود درباره نحوه طراحی ربات‌های تلگرامی در این زبان را افزایش دهید یا این‌که علاقه‌مند هستید تا زبان پایتون را به‌صورت کامل بیاموزید تا بتوانید از این زبان برای طراحی ربات‌های تلگرامی خود استفاده کنید به شما پیشنهاد می‌کنیم حتما از صفحه آموزش پایتون در سایت کدیاد دیده کنید. در این صفحه شما می‌توانید با استفاده از محتوای ویدئویی و متنی به‌راحتی هرچه تمام زبان برنامه‌نویسی پایتون را به‌صورت رایگان بیاموزید.