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

ساخت ربات تلگرام با پایتون
آکادمی آی تی
آکادمی آی تی
dots

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

زمان مورد نیاز برای مطالعه 5 دقیقه

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

دپارتمان ‌ها: آموزش برنامه نویسی
1400/11/30
34,295 بازدید

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

 

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

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

 

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

بات ها در مقایسه با برنامه‌های سنتی، رابط نسبتاً ساده‌ای دارند، زیرا فقط به کاربران نیاز دارند تا چت کنند، و ‌بات ها باید هر کاری را که کاربر از آن ها می خواهد، حداقل در تئوری، درک کرده و انجام دهند.

بسیاری از صنایع خدمات مشتریان خود را به سمت سیستم های بات تغییر می دهند. این به دلیل کاهش شدید هزینه در مقایسه با انسان های واقعی و همچنین به دلیل استحکام و در دسترس بودن ثابت است. بات ها درجه ای از پشتیبانی کاربر را بدون هزینه اضافی قابل توجه ارائه می دهند.

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

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

تلگرام یکی از محبوب‌ترین پلتفرم های IM امروزه است، زیرا به شما امکان می‌دهد پیام ها را به جای دستگاه خود در فضای ابری ذخیره کنید و از پشتیبانی چند پلتفرم خوبی برخوردار است، زیرا می‌توانید تلگرام را در اندروید، iOS و ویندوز داشته باشید.

 

برای ساخت ربات به چه چیزهایی نیاز داریم؟

برای تکمیل این آموزش، به پایتون 3 روی سیستم خود و همچنین مهارت های کدنویسی پایتون نیاز دارید اما الزامی نیست، زیرا بیشتر مواردی را که ارائه می‌کنیم به تفصیل بررسی خواهیم کرد. شما همچنین باید Git را روی سیستم خود نصب کنید.

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

در اینجا ما به یک ماژول به نام python-telegram-bot نیاز داریم، این کتابخانه یک رابط Python برای API ربات تلگرام فراهم می کند. با نسخه های پایتون 3.6.8+ سازگار است. علاوه بر پیاده سازی API ، این کتابخانه دارای تعدادی کلاس های سطح بالا است تا توسعه ربات ها را آسان و ساده کند. این کلاس ها در زیر ماژول "telegram.ext" قرار دارند.

 

نصب ماژول

ما می توانیم این ماژول را از طریق pip و conda با دستور زیر نصب کنیم.

1.    نصب از طریق pip

pip install python-telegram-bot

2.    نصب از طریق conda

conda install -c conda-forge python-telegram-bot

 

همچنین بخوانید : آموزش ساخت api با پایتون

 

مراحل ایجاد اولین ربات

مرحله 1: پس از باز کردن یک حساب کاربری در تلگرام، در نوار جستجو در بالای صفحه عبارت BotFather را جستجو کنید.

مرحله 2: روی BotFather (نخستین نتیجه) کلیک کنید و /newbot را تایپ کنید.

مرحله 3: یک نام منحصر به فرد به ربات خود بدهید. پس از نامگذاری، Botfather نام کاربری آن را می خواهد. سپس یک نام منحصر به فرد نیز بدهید، اما به یاد داشته باشید که نام کاربری ربات شما باید به ربات ختم شود، مانند my_bot، hellobot و غیره.

مرحله 4: پس از دادن یک نام منحصر به فرد و در صورت پذیرفته شدن، پیامی مانند این دریافت خواهید کرد:
 

                                                                                             


در اینجا مقدار توکن برای شما متفاوت خواهد بود، ما از این توکن در کد پایتون خود استفاده می کنیم تا تغییراتی در ربات خود ایجاد کنیم و آن را همان طور که می خواهیم انجام دهیم و چند دستور را در آن اضافه کنیم.

 

همچنین بخوانید : آموزش ماژول های پایتون

 

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

خب بیایید مراحل ساخت ربات را گام به گام شروع کنیم.

مرحله 1: وارد کردن کتابخانه های مورد نیاز

from telegram.ext.updater import Updater
from telegram.update import Update
from telegram.ext.callbackcontext import CallbackContext
from telegram.ext.commandhandler import CommandHandler
from telegram.ext.messagehandler import MessageHandler
from telegram.ext.filters import Filters

 

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

Updater: این شامل کلید API است که از BotFather دریافت کرده ایم تا مشخص کنیم که در کدام ربات عملکردهایی را به استفاده از کد پایتون خود اضافه می کنیم.

Update: هر بار که یک ربات به روز رسانی را دریافت می کند، یعنی پیام یا دستوری را فراخوانی می کند و پیامی را برای کاربر ارسال می کند.

CallbackContext: ما از عملکرد آن به طور مستقیم در کد خود استفاده نمی کنیم، اما زمانی که توزیع کننده را اضافه می کنیم، لازم است (به صورت داخلی کار می کند)

CommandHandler: این کلاس Handler برای کنترل هر دستوری که کاربر به ربات ارسال می کند استفاده می شود، یک دستور همیشه با "/" شروع می شود.

MessageHandler: این کلاس Handler برای رسیدگی به هر پیام عادی ارسال شده توسط کاربر به ربات استفاده می شود.

Filter: این کار متن عادی، دستورات، تصاویر و غیره را از یک پیام ارسال شده فیلتر می کند.


مرحله 2: تعریف توابع برای عملیات

Start function: اولین مکالمه را نمایش می دهد، می توانید نام دیگری برای آن بگذارید، اما هر زمان که کاربر در همان ابتدا "شروع" را فشار دهد، پیام درون آن برای کاربر ارسال می شود.

updater = Updater("your_own_API_Token got from BotFather",
use_context=True)
def start(update: Update, context: CallbackContext):
update.message.reply_text(
"پیامی که هنگام شروع ربات به کاربر ارسال می کند را در این بخش وارد نمایید.")

 

اساساً در پیام شروع باید چیزی مانند "Hello Welcome to the Bot" و غیره اضافه کنید.

function Help: اساساً در این تابع است که شما باید هر نوع کمکی را که کاربر ممکن است نیاز داشته باشد اضافه کنید، یعنی تمام دستوراتی که ربات شما می فهمد، اطلاعات مربوط به ربات و غیره)

def help(update: Update, context: CallbackContext):
update.message.reply_text("Your Message")


افزودن برخی قابلیت های بیشتر به ربات.

def gmail_url(update: Update, context: CallbackContext):
update.message.reply_text("gmail link here")
def youtube_url(update: Update, context: CallbackContext):
update.message.reply_text("youtube link")
def linkedIn_url(update: Update, context: CallbackContext):
update.message.reply_text("Your linkedin profile url")
def geeks_url(update: Update, context: CallbackContext):
update.message.reply_text("Academyit url here")
def unknown_text(update: Update, context: CallbackContext):
update.message.reply_text(
"Sorry I can't recognize you , you said '%s'" % update.message.text)
def unknown(update: Update, context: CallbackContext):
update.message.reply_text(
"Sorry '%s' is not a valid command" % update.message.text)

 

در اینجا ما 4 عملکرد را اضافه کرده ایم که یکی برای باز کردن Gmail، یکی برای youtube، یکی برای LinkedIn، و آخرین مورد برای Academyit. این ها توابع اجباری نیستند، می توانید هر نوع توابع و reply_text آنها را همان طور که می خواهید اضافه کنید، این ها فقط برای نمایش هستند.

در اینجا تابع known_text هر زمان که چند پیام ناشناخته دریافت کند، پیام نوشته شده در داخل خود را ارسال می کند و تابع مجهول تمام دستورات ناشناخته ارسال شده توسط کاربر را فیلتر کرده و به پیام نوشته شده در داخل آن پاسخ می دهد.

 

مرحله 3: اضافه کردن Handlers برای مدیریت پیام ها و دستورات ما

updater.dispatcher.add_handler(CommandHandler('start', start))
updater.dispatcher.add_handler(CommandHandler('youtube', youtube_url))
updater.dispatcher.add_handler(CommandHandler('help', help))
updater.dispatcher.add_handler(CommandHandler('linkedin', linkedIn_url))
updater.dispatcher.add_handler(CommandHandler('gmail', gmail_url))
updater.dispatcher.add_handler(CommandHandler('geeks', geeks_url))
updater.dispatcher.add_handler(MessageHandler(Filters.text, unknown))
updater.dispatcher.add_handler(MessageHandler(
# Filters out unknown commands
Filters.command, unknown))
# Filters out unknown messages.
updater.dispatcher.add_handler(MessageHandler(Filters.text, unknown_text))

 

در اینجا هر خط نشان می دهد که هر زمان که یک کاربر دستوری بنویسد، یعنی اولین پارامتر CommandHandler در پاسخ، کاربر پیامی را دریافت می کند که داخل تابع ذکر شده در پارامتر بعدی نوشته شده است.

 

مرحله 4: اجرای ربات

updater.start_polling()

 

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

در زیر اجرای کامل آن آمده است:

from telegram.ext.updater import Updater
from telegram.update import Update
from telegram.ext.callbackcontext import CallbackContext
from telegram.ext.commandhandler import CommandHandler
from telegram.ext.messagehandler import MessageHandler
from telegram.ext.filters import Filters
updater = Updater("your_own_API_Token got from BotFather",
use_context=True)
def start(update: Update, context: CallbackContext):
update.message.reply_text(
"Hello sir, Welcome to the Bot.Please write\
/help to see the commands available.")
def help(update: Update, context: CallbackContext):
update.message.reply_text("""Available Commands :-
/youtube - To get the youtube URL
/linkedin - To get the LinkedIn profile URL
/gmail - To get gmail URL
/geeks - To get the GeeksforGeeks URL""")
def gmail_url(update: Update, context: CallbackContext):
update.message.reply_text(
"Your gmail link here (I am not\
giving mine one for security reasons)")
def youtube_url(update: Update, context: CallbackContext):
update.message.reply_text("Youtube Link =>\
https://www.youtube.com/")
def linkedIn_url(update: Update, context: CallbackContext):
update.message.reply_text(
"LinkedIn URL => \
https://www.linkedin.com/in/dwaipayan-bandyopadhyay-007a/")
def geeks_url(update: Update, context: CallbackContext):
update.message.reply_text(
"GeeksforGeeks URL => https://www.geeksforgeeks.org/")
def unknown(update: Update, context: CallbackContext):
update.message.reply_text(
"Sorry '%s' is not a valid command" % update.message.text)
def unknown_text(update: Update, context: CallbackContext):
update.message.reply_text(
"Sorry I can't recognize you , you said '%s'" % update.message.text)
updater.dispatcher.add_handler(CommandHandler('start', start))
updater.dispatcher.add_handler(CommandHandler('youtube', youtube_url))
updater.dispatcher.add_handler(CommandHandler('help', help))
updater.dispatcher.add_handler(CommandHandler('linkedin', linkedIn_url))
updater.dispatcher.add_handler(CommandHandler('gmail', gmail_url))
updater.dispatcher.add_handler(CommandHandler('geeks', geeks_url))
updater.dispatcher.add_handler(MessageHandler(Filters.text, unknown))
updater.dispatcher.add_handler(MessageHandler(
Filters.command, unknown)) # Filters out unknown commands
# Filters out unknown messages.
updater.dispatcher.add_handler(MessageHandler(Filters.text, unknown_text))
updater.start_polling()

 

نتیجه

در آموزش ساخت ربات تلگرام با پایتون، تمام مراحل ساخت ربات تلگرام به صورت گام به گام توضیح داده شد، اکنون می‌توانید پس از این آموزش، ربات خود را به روشی که می‌خواهید بسازید و ایده خود را عملی کنید!

 امیدواریم از ساخت ربات تلگرام خود لذت برده باشید.