خوش آموز درخت تو گر بار دانش بگیرد، به زیر آوری چرخ نیلوفری را


آموزش ساخت ربات تلگرام با پایتون 3 - به صورت گام به گام

آموزش ساخت ربات تلگرام با پایتون 3 - به صورت گام به گام
امروزه دست کم در ایران کسی نیست که با تلگرام و کاربردهای فراوان آن آشنا نباشد. تلگرام بعد از ظهور خودش با اتکا به ویژگی های منحصر به فردش و همینطور امنیت فوق العاده اش، و البته سرورهای قدرتمندش و ... به سرعت جای خود را در دل کاربران باز کرد و هر روز با ویژگی های جدیدش، این پیوند را محکم تر از پیش کرد. یکی از ویژگی های فوق العادۀ تلگرام ویژگی ربات (Bot) می باشد. در این آموزش شما را با این ویژگی بیشتر آشنا می سازیم و همینطور شما را با چگونگی ساخت ربات تلگرام با پایتون 3 آشنا می کنیم. اگر در زمینۀ نصب پایتون نیاز به راهنمایی دارید می توانید از آموزش نصب پایتون کمک بگیرید.

مقدمات کار و پیش نیازها


طبیعی است، درک این آموزش نیاز به پیش نیازهایی دارد که در اینجا به برخی از آنها اشاره می کنیم. پیش نیاز اول اینست که با تلگرام آشنایی داشته باشید (که بعید می دانم دست کم در ایران کسی با آن آشنا نباشد). پیش نیاز بعدی اینست که با زبان برنامه نویسی پایتون و به طور کل با برنامه نویسی آشنایی داشته باشید. البته اگر در این زمینه نیاز به تقویت دانش پایتون خود داشته باشید می توانید از آموزش های برنامه نویسی پایتون در فرادرس کمک بگیرید. پایتون یک زبان سطح بالا است که امتیازات فراوانی از جمله خوانایی و سادگی دارد. امروزه جامعۀ برنامه نویسان پایتون جامعۀ بسیار بزرگی است که شامل بیش از \(30\) درصد کل برنامه نویس ها می شود.

آشنایی با قابلیت های ربات های تلگرام


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

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

مزایای استفاده از ربات های تلگرام


یک ربات تلگرام برنامه ای است که شبیه یک چت معمولی، البته با کارکردهای وسیعتر، عمل می کند. یکی از مزیت های فوق العادۀ ربات های تلگرام اینست که برای پاسخ دادن نیاز به نیروی انسانی نیست و همانطور که از اسمش هم بر می آید همه چپز توسط ربات (در واقع نرم افزاری که شمای برنامه نویس نوشته اید) مدیریت می شود.

ربات تلگرام می تواند اطلاعات مختلفی از جمله موارد زیر را به کاربر برگرداند:
  • پیام های متنی
  • تصاویر
  • فایل های ویدئویی
  • فایل هایی از هر نوع دیگر

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

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

قدم اول در ساخت ربات تلگرام چیست؟


اولین گام در ساخت ربات تلگرام اینست که یک اکانت تلگرام بسازید. در اینجا قصد نداریم چگونه آن را آموزش دهیم چون قطعاً بلدید. پس در واقع گام اول اصلی اینست که رباتتان را بسازید. خوشبختانه تلگرام این کار را برای شما ساده کرده است. کافیست با BotFather ارتباط برقرار کنید. اما BotFather چیست؟ همانطور که از اسمش معلوم است بات فادر (BotFather)، پدر همۀ ربات ها است. یعنی ربات های جدید توسط او تولید می شوند.

بات فادر در واقع خودش یک ربات است که توسط تلگرام ایجاد شده است و به طور پیش فرض در برنامۀ تلگرام گنجانده شده است. در بات فادر راهنمای گام به گام ایجاد یک ربات وجود دارد. کار سختی نیست و فقط کافیست به ترتیب دستورات و کارهای زیر را انجام دهید:

  1. ایجاد یک ربات جدید با دستور \(\text{/newbot}\) .
  2. انتخاب یک نام برای رباتتان.
  3. انتخاب یک نام کاربری برای رباتتان (دقت کنید که انتهای این نام کاربری الزاماً باید کلمۀ bot باشد.)
  4. بعد از اینکه رباتتان را در آن ساختید مشابه تصویر زیر یک کلید به شما می دهد که از آن در محیط برنامه نویسی تان استفاده خواهید کرد.

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

توجه مهم: کارکردهای بات فادر محدود به این مواردی که اشاره کردیم نیست و دستورات زیاد دیگری نیز دارد که در اینجا آنها را نادیده گرفته ایم.

آشنایی با پایتون


از آنجا که بخشی از این آموزش مرتبط با پایتون است، ضرورت دارد که با این زبان برنامه نویسی آشنا باشید. پایتون یک زبان برنامه نویسی رایگان و متن باز و همینطور همه منظوره است که در دهۀ \(1980\) توسط دانشمندی هلندی با نام خیدو فان روسوم طراحی شد. یکی از ویژگی های بسیار عالی آن که باعث محبوبیت و رواجش شده است، سادگی آن و البته قدرتمند بودن آن در حین سادگی اش است. دلیل اینکه ما هم در این آموزش زبان پایتون را برای برنامه نویسی ربات های تلگرام استفاده کرده ایم همین است. در صورت تمایل به کسب اطلاعات بیشتر در مورد خود پایتون می توانید از آشنایی کلی با زبان برنامه نویسی پایتون استفاده کنید. در نوشتار مورد اشاره می توانید اطلاعات بیشتری دربارۀ پایتون، دلایل محبوبیت آن، بازار کار آن، و همچنین اطلاعات بیشتری دربارۀ حوزه های مختلف مورد نفوذ پایتون کسب کنید.

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

آشنایی با ابزار \(\text{Telegram Bot API}\)


برای اینکه بتوانید برای ربات های تلگرام برنامه نویسی های اختصاصی انجام دهید، باید از یک واسط برنامه نویسی که شرکت تلگرام برای شما آماده کرده است استفاده کنید. اسم این واسط برنامه نویسی \(\text{Telegram Bot API}\) (واسط برنامه نویسی ربات های تلگرام) می باشد. Bot API در واقع یک واسط مبتنی بر HTTP می باشد که برای برنامه نویسانی که مشتاق به برنامه نویسی ربات های تلگرام هستند ایجاد شده است. در واقع به کمک این واسط برنامه نویسی می توانید با گسترۀ وسیعی از زبان های برنامه نویسی، اقدام به برنامه نویسی ربات های تلگرام کنید. اما ماجرا به اینجا ختم نمی شود و کتابخانه های کد و واسط های برنامه نویسی فراوان دیگری نیز وجود دارند که توسط سایرین ایجاد شده اند و در ادامه با برخی از آنها نیز آشنا خواهید شد.

آشنایی با ابزار \(\text{python-telegram-bot}\)


آموزش ساخت ربات تلگرام با پایتون 3
پایتون تلگرام بات یک کتابخانۀ کد ایجاد شده در پایتون 3 است که کار برنامه نویسی ربات های تلگرام را برای برنامه نویسان زبان پایتون راحتتر کرده است. در واقع در پشت صحنه، این کتابخانه خودش از Telegram Bot API استفاده می کنید، اما شما درگیر پیچیدگی های آن نخواهید شد و با یک سری کلاس های سطح بالا کدهای مورد نیازتان را خواهید نوشت.

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

$ pip install python-telegram-bot --upgrade

آشنایی با پایتون تلگرام بات


پایتون تلگرام بات مستقیماً با کلاس telegram.Bot کار می کند. در واقع مستقیماً با Telegram Bot API که در سایت رسمی خود تلگرام معرفی شده است کار می کند. حتی روش نامگذاری کوهان شتری (camelCase) آن نیز با آن شباهت دارد. حتی برای راحتی بیشتر برنامه نویسانی که پیشتر مستقیماً با Telegram Bot API کار کرده اند، در نامگذاری متدها و توابع نیز شباهت ها رعایت شده اند، به عنوان مثال متد telegram.Bot.send_message مشابه متد اصلی آن یعنی telegram.Bot.sendMessage می باشد. تمامی کلاس های پایتون تلگرام بات را می توانید در واسط اصلی خود تلگرام نیز بیابید. به عنوان مثال کلاس Message در واسط اصلی با نام telegram.Message وجود دارد.

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


ماژول telegram.ext یکی از ماژول های اصلی پایتون تلگرام بات است و با آن به سادگی می توانید اولین ربات تلگرامتان را بسازید. این ماژول متشکل از چندین کلاس است که دو تا از مهمترین های آنها telegram.ext.Updater و telegram.ext.Dispatcher می باشند.

کلاس Updater به طور مداوم تغییرات ایجاد شده از سمت تلگرام را دریافت می کند و آنها را به کلاس Dispatcher منتقل می کند. اگر یک شیء Updater بسازید، خودش یک Dispatcher برای شما می سازد و آن دو را به یکدیگر مرتبط می سازد. اکنون می توانید کنترل کننده های (handlers) مختلفی از انواع گوناگون را در Dispatcher ثبت کنید، هر کدام از این کنترل کننده ها تغییراتی دریافتی را به تابعی که شما تعریف کرده اید باز می گردانند.

هر کنترل کننده ای که می سازید از کلاس telegram.ext.Handler می باشد، در این کتابخانه تقریباً برای هر نوع موردی، کنترل کننده ای فراهم شده است، اما اگر می خواهید چیز خاص تری بسازید دست شما باز است و می توانید کنترل کنندۀ خاص خودتان را نیز در آن ایجاد کنید.

با توجه به اینکه امروزه دیگر تمامی برنامه ها با شیء گرایی نوشته می شوند، اگر در این زمینه ضعف دارید و نیاز به تقویت خودتان می بینید توصیه می کنم از آموزش برنامه نویسی شی گرا در Python (پایتون) استفاده کنید.

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


برای شروع به کلیدی که از هنگام ایجاد ربات دریافت کردید نیاز دارید. ابتدا یک شیء Updater بسازید. به جای نوشتۀ TOKEN، کلیدی را که هنگام ساخت ربات تلگرام دریافت کرده بودید و در مرحلۀ اول به آن اشاره کردیم، جایگزین کنید.

from telegram.ext import Updater
updater = Updater(token='TOKEN', use_context=True)

برای دسترسی سریع تر به Dispatcher مورد استفاده توسط شیء Updater، می توانید آن را به صورت متغیری محلی تعریف کنید.

dispatcher = updater.dispatcher

حالا زمان خوبی برای تنظیم ماژول logging است، به کمک این ماژول، اگر چیزی آنطور که انتظار می رود کار نکند می توانید دلیلش را بدانید.

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

اکنون می توانید تابعی را تعریف کنید که نوع خاصی از تغییر را پردازش کند:

def start(update, context):
context.bot.send_message(chat_id=update.effective_chat.id, text="I'm a bot, please talk to me!")

هدف این تابع اینست که هرگاه که در ربات تلگرام شما دستور \(\text{/start}\) تایپ شد، شما در داخل برنامۀ تان پیامی را دریافت کنید. برای تکمیل این وظیفه، می توانید از یک CommandHandler استفاده کنید. در واقع همان Handler (کنترل کننده ای) که پیش تر به آن اشاره کردیم.

from telegram.ext import CommandHandler
start_handler = CommandHandler('start', start)
dispatcher.add_handler(start_handler)

اکنون مقدمات کار آماده است تا رباتتان را استارت کنید.

updater.start_polling()

امتحانش کنید! یک چت را با رباتتان آغاز کنید و دستور /start را در آن اجرا کنید، اگر همه چیز درست پیش رفته باشد و همۀ کارهای بالا را درست انجام داده باشید، ربات شما پاسخ خواهد داد.

اما تا اینجای کار ربات ما تنها می تواند به دستور \(\text{/start}\) پاسخ دهد. بیایید handler دیگری اضافه کنیم تا به پیام های دیگری هم گوش کند. به کمک MessageHandler، یک Handler دیگر بیفزایید:

def echo(update, context):
context.bot.send_message(chat_id=update.effective_chat.id, text=update.message.text)

from telegram.ext import MessageHandler, Filters
echo_handler = MessageHandler(Filters.text & (~Filters.command), echo)
dispatcher.add_handler(echo_handler)

از این به بعد ربات شما می تواند سایر دستورات را نیز دریافت کند. به محض اینکه handler هایی را به آنها بیفزایید، تأثیرشان را خواهید دید.

بیایید چند کارکرد واقعی به رباتتان اضافه کنیم. ما می خواهیم یک دستور \(\text{/caps}\) را اجرا کنیم که مقداری متن را به عنوان پارامتر بگیرد و در پاسخ آن CAPS را بدهد.

def caps(update, context):
text_caps = ' '.join(context.args).upper()
context.bot.send_message(chat_id=update.effective_chat.id, text=text_caps)

caps_handler = CommandHandler('caps', caps)
dispatcher.add_handler(caps_handler)

آموزش ویدئویی مفید دیگری برای ساخت ربات تلگرام


در اینجا آموزش دیگری در باب ساخت ربات تلگرام با پایتون 3 را برایتان قرار می دهم که توسط جناب آقای پویا جمالی، یکی از مدرسان فرادرس، ساخته شده است و در سایتش نیز منتشر شده است. آموزش مقدماتی ساخت ربات تلگرام با پایتون (Python) یک آموزش سودمند و کاربردی است که به شکل ویدیویی تهیه شده است.

همچنین اگر دربارۀ خود موضوع پایتون نیاز به آموزش های بیشتر و پیشرفته تری داشته باشید می توانید از آموزش پیشرفتۀ برنامه نویسی پایتون استفاده کنید.

جهت مشاهده آموزش های بیشتر در این زمینه و البته آموزش های بیشتر در سایر حوزه های فنی می توانید از سایت فرادرس بازدید نمایید. در این سایت می توانید موضوعات فراوانی در حوزه های برنامه نویسی، مهندسی نرم افزار، هوش مصنوعی، رباتیک، و ... را بیابید.

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


نمایش دیدگاه ها (0 دیدگاه)

دیدگاه خود را ثبت کنید:

انتخاب تصویر ویرایش حذف
توجه! حداکثر حجم مجاز برای تصویر 500 کیلوبایت می باشد.


دسته بندی مطالب خوش آموز