هدف از نوشتن این مقاله آموزش ساخت ربات تلگرام با پایتون با یک مثال عملی است. شبکه اجتماعی تلگرام از جمله بهترین شبکههای اجتماعی پراستفاده در سراسر دنیا است. تلگرام امکانات متعددی دارد که بعد از هر بروزرسانی بیشتر نیز میشوند. از این رو در این مقاله سعی داریم به آموزش ساخت یک ربات تلگرام بپردازیم که امکان تولید نقل قول تصادفی را به ما میدهد.
آیا دنبال کردن آموزش ساخت ربات تلگرام با پایتون می تواند سودآور باشد؟
همانطور که میدانید استفاده از پیامرسان تلگرام نیازمند به نرمافزار تغییر آیپی است. اما با این وجود همچنان طرفداران خاص خود را دارد. همه روزه میتوان آگهیهای مختلفی را برای استخدام ادمین تلگرام و همچنین برنامهنویس ربات تلگرام مشاهده کرد. شما میتوانید به راحتی با یادگیری چگونگی برنامهنویسی ربات تلگرام به کسب درآمد از این پیامرسان بپردازید.
قطعا پیشنیاز برنامهنویسی ربات تلگرام یادگیری یک زبان برنامهنویسی است. در این مقاله ما سعی داریم با استفاده از زبان برنامهنویسی پایتون به شما این کار را آموزش دهیم. یادگیری برنامهنویسی پایتون اگر درست آموزش داده شود کار بسیار آسانی است. از این رو فرادرس به عنوان یک مرجع آموزشی باکیفیت در ایران، به آموزش این مبحث و بسیاری آموزشهای دیگر پرداخته است که میتوانید از طریق لینک زیر به آنها دسترسی داشته باشید:
در ادامه قصد داریم یک ربات تولید تصادفی نقل قول در تلگرام ایجاد کنیم اما قبل از آن باید یک IDE را برای اینکار انتخاب کنیم. ما در این مقاله از VScode استفاده می کنیم که یکی از بهترین محیطها برای برنامهنویسی پایتون به شمار میرود.
آمادهسازی این نرمافزار برای کدنویسی پایتون کار بسیار سادهای است و کافیست در extions در گوشه سمت چپ صفحه در نرمافزار vscode عبارت python را جستجو کنید تا افزونه این زبان برنامهنویسی برای شما به نمایش در بیاید. سپس بر روی دکمه install کلیک کنید تا این افزونه برای شما نصب شود.
تصور ما این است که شما مفسر پایتون را نیز بر روی سیستم خودتان به درستی نصب کردهاید.
ایجاد رابط کاربری ربات تلگرام
ابتدا وارد نرمافزار تلگرام خودتان در تلفن همراه و یا کامپیوتر شوید.
سپس عبارت BotFather را در نوار جستجو بالای صفحه جستجو کنید.
در این مرحله بهتر است به تیک آبی در کنار نام این ربات دقت داشته باشید. این تیک به این معنی است که این ربات به صورت رسمی توسط تلگرام معرفی شده است.
در صفحه ربات botfather بر روید دکمه start کلیک کنید. اگر از قبل ربات دیگری را ایجاد کرده باشید باید بر روی دکمه restart کلیک کنید.
شما میتوانید عبارت زیر را در تلگرام کپی کنید و بر روی لینک ایجاد شده کلیک کنید.
1
@botfather
بعد از ارسال دستور start ربات برای شما یک راهنمای کامل برای ایجاد ربات ارائه میدهد.
بر روی لینک new bot کلیک کنید تا این دستور برای ربات مورد نظرتان ارسال شود. بعد از ارسال دستور باید یک اسم برای ربات خودتان تعیین کنید.
بعد از انتخاب اسم باید یک آیدی برای ربات خودتان تعیین کنید.
توکن ربات را میتوانید از پیام ارسال شده بدست بیاورید. این توکن را به هیچ عنوان در اختیار کسی قرار ندهید.
شروع آموزش ساخت ربات تلگرام با پایتون
بعد از ایجاد ربات مورد نظر خودتان در ربات BotFather باید شروع به کدنویسی برای این ربات کنید. این کار را با استفاده از توکن این ربات انجام خواهیم داد.
ساختار ربات تلگرام
برای ایجاد ربات تلگرام ابتدا باید ساختار آن را در یک پوشه ایجاد کنید. برای اینکار بهتر است سه فایل زیر را برای ربات مورد نظر ایجاد کنید.
main.py: این فایل در حقیقت بدنه برنامه را تشکیل میدهد.
resposes.py: دیالوگهایی که قرار است بین کاربر و ربات رخ دهد را پیشبینی کرده و مینویسیم.
api.py: در این فایل توکن ارسال شده را تعریف میکنیم.
در ادامه بیشتر با این سه فایل مهم کار خواهیم کرد.
شروع کد نویسی در ساختار فایل های ربات
کد نویسی در این سه فایل کار بسیار سادهای است کافیست مراحل زیر را دنبال کنید.
1. کدنویسی api.py
در ابتدا با کدهای زیر کار را شروع میکنیم.
1
API_bot="your token"
توکن ارسال شده توسط ربات را در قسمت your token اضافه کنید. وظیفه اصلی این فایل تنها نگهداری توکنها است.
2. کدنویسی فایل respose.py
همانطور که گفته شد در این فایل باید پاسخهای احتمالی توسط کاربران را ارائه دهیم. ما قصد داریم علاوه بر ارسال نقل قول برای کاربران یک فضای چت بسیار ساده را نیز برای آنها ترتیب دهیم. همچنین میخواهیم تاریخ را نیز به کاربران نشان دهیم. برای این کار کتابخانه datetime را به برنامه خودمان وارد میکنیم. برای اینکار کد زیر را وارد کنید.
1
fromdatetimeimportdate
سپس باید یک تابع در این فایل ایجاد کنیم. این تابع در حقیقت مقداری را به کاربر برمیگرداند که قرار است در خروجی مشاهده کند. برای ایجاد تابع به شکل زیر عمل میکنیم.
1
defresponse_bot(text):
بعد از آن برای نمایش تاریخ به کاربران دستور زیرا را تایپ میکنیم.
1
2
today=date.today()
returnstr(today)
دستور بالا تاریخ امروز را به عنوان یک مقدار بازگشتی به کاربر در قالب یک رشته نمایش میدهد.
برای افزایش امکانات ربات کمی امکانات چت آن را گسترش میدهیم. به عنوان مثال قابلیت سلام و احوال پرسی را به آن اضافه میکنیم. تنها کافیست از دستورات زیر برای انجام این کار استفاده کنید.
1
2
3
4
eliftextin('سلام'):
return'سلام'
eliftextin('خوبی'):
return'مرسی خوبم'
حال نوبت به این میرسد که دستورات مربوط به نقل قول را به ربات اضافه کنیم. برای اینکار باید ابتدا یک لیست در ابتدای تابع اضافه کنیم تا نقل قولها را درون آن قرار دهیم. سپس با استفاده از تابع رندوم یک مقدار از لیست را به کاربر نمایش میدهیم. کد این کار به صورت زیر است.
1
2
3
4
5
6
7
8
9
10
quotes=[
'عشق، رها کردن ترس است.- Gerald Jampolsky',
'ما به چیزی که بدان فکر می کنیم تبدیل می شویم. – Earl Nightingale',
'ما به چیزی که بدان فکر می کنیم تبدیل می شویم. – Earl Nightingale',
'وقتی شک دارید، راستش را بگویید. – Mark Twain',
'هیچ انسانی تا به حال شانسی عاقل نشده. - Lucius Annaeus Seneca'
]
eliftextin('نقل قول'):
quote_rand_a=random.randint(0,4)
returnstr(quotes[quote_rand_a])
همانطور که گفته شد این بخش از کد مقادیر نقل قول را از لیست quotes خوانده و به صورت تصادفی یکی از آنها را به کاربران نمایش میدهد.
استفاده از مطالبی که در این مقاله گفته میشود نیازمند به یک دانش قبلی از برنامهنویسی پایتون و همچنین برنامهنویسی ربات تلگرام است برای یادگیری این مباحث میتوانید به لینک زیر مراجعه کنید.
در نهایت یک else اضافه میکنیم که اگر کاربر دستوری غیر از موارد تعریف شده را اضافه کرد بتوان آن را مدیریت کرد.
1
2
3
else:
return'متوجه منظورت نمیشم دستورات من محدود هستند!'
بسیار خوب کار ما با فایل response.py تمام شده است. کل کدهای این فایل به شکل زیر میباشد.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
fromdatetimeimportdate
importrandom
defresponse_bot(text):
quotes=[
'عشق، رها کردن ترس است.- Gerald Jampolsky',
'ما به چیزی که بدان فکر می کنیم تبدیل می شویم. – Earl Nightingale',
'ما به چیزی که بدان فکر می کنیم تبدیل می شویم. – Earl Nightingale',
'وقتی شک دارید، راستش را بگویید. – Mark Twain',
'هیچ انسانی تا به حال شانسی عاقل نشده. - Lucius Annaeus Seneca'
]
text=str(text).lower()
iftextin('تاریخ','تاریخ امروز','امروز چندمه'):
today=date.today()
returnstr(today)
eliftextin('سلام'):
return'سلام'
eliftextin('خوبی'):
return'مرسی خوبم'
eliftextin('نقل قول'):
quote_rand_a=random.randint(0,4)
returnstr(quotes[quote_rand_a])
else:
return'متوجه منظورت نمیشم دستورات من محدود هستند!'
حال کافیست فایل main.py را پیکربندی کنیم.
3. کدنویسی فایل main.py
در این افیل کدهای اجرایی برنامه ایجاد شده است. برای اینکه بتوانید ربات خودتان را اجرا کنید باید این فایل را کدنویسی کنید.
در ابتدا این فایل دو فایل دیگری را که با هم ایجاد کردیم را وارد فایل اصلی میکنیم. انجام این کار به شکلی زیر صورت میپذیرد.
1
2
importapiasc
importresponsasR
حال برای اینکه بتوانیم از کتابخانه تلگرام استفاده کنیم باید این کتابخانه را ابتدا بر روی سیستم نصب کنیم. برای اینکار از منوی terminal در بالای صفحه گزینه new terminal را انتخاب کنید.
برای نصب کردن کتابخانه ربات تلگرام دستور زیر را وارد کنید.
1
pipinstallpython-telegram-bot
با نوشتن این دستور و زدن دکمه enter این کتابخانه برای شما نصب خواهد شد.
برای وارد کردن این کتاب خانه به فایل اصلی خودتان کافیست دستور زیر را به ابتدای فایل اضافه کنید.
1
fromtelegram.extimport*
برای اینکه مطمئن شویم برنامه مورد نظر ما در حال اجرا است یک دستور print را به اولی فایل اضافه میکنیم. این دستور تنها برای کسب اطمینان است و به کاربران تلگرام چیزی را نمایش نمیدهد.
1
print("I'm running")
در خط بعدی باید تابع main را که بدنه اصلی برنامه در آن قرار دارد به برنامه خودمان اضافه کنیم.
1
defmain():
برای اینکه فایل main به تلگرام متصل شود از دستور زیر استفاده کنید.
1
updater=Updater(c.API_bot,use_context=1)
حال نوبت به ایجاد یک dispatcher رسیده است. برای اینکار از دستور زیر استفاده کنید.
1
dp=updater.dispatcher
برای کنترل دستوراتی که کاربران برای ما ارسال میکنند از تابع add_handler استفاده میکنیم. به عنوان مثال اگر کاربر دستور /start را وارد کرد میخواهیم یک پیغام برای او نمایش داده شود:
1
dp.add_handler(CommandHandler('start',start))
با این دستور در حقیقت تعریف کردیم که با استفاده از تابع start میتوانیم این دستور را کنترل کنیم. در ادامه این تابع را با هم خواهیم نوشت.
برای دستوراتی که به صورت فرمان نیستند به عنوان مثال کلمه سلام، به شکل زیر عمل میکنیم.
حال دو تابع زیر را در پایان تابع main فراخوانی میکنیم.
1
2
updater.start_polling()
updater.idle()
اگر به طور کلی با زبان پایتون آشنایی لازم را نداشته باشید این مقاله نمیتواند یک راهنمای مناسب برای شما باشد. برای یادگیری این زبان برنامهنویسی میتوانید به لینک زیر مراجعه کنید که یک دوره آموزشی بسیار حرفهای است.
حال باید یک تابع برای دستور start که بیشتر آن را تعریف کردهایم ایجاد کنیم. برای اینکار به شکل زیر عمل میکنیم.
1
2
3
defstart(update,context):
update.message.reply_text("ربات با موفقیت اجرا شد...")
رشته نوشته شده درون این تابع برای کاربر تلگرام که دستور /start را وارد کند ارسال میشود. همچنین برای تابع دیگر یعنی همان handle_response نیز همین کار را تکرار میکنیم.
در این تابع ما پیغام ارسالی از سوی کاربر را درون یک متغیر به نام text قرار دادیم سپس پیغام بازگشتی از کاربر را که برای دستور کاربر بازگشت داده شده بود برای او ارسال کردیم.
تنها کاری که باید در آخر این تابع انجام دهیم این است که تابع main را فراخوانی کنیم تا دستورات آن اجرا شود.
حال که با این دستورات به صورت کامل کار کردیم وقت آن است که خروجی را مشاهده کنیم. اگر کدهای گفته شده را به درستی نوشته باشید و پایتون را به درستی بر روی سیستم خودتان نصب کرده باشید و همچنین کتابخانههای استفاده شده را به درستی نصب کرده باشید یک خروجی مانند تصویر زیر برای شما نمایش داده خواهد شد.
نکته:همانطور که میدانید اپلیکیشن تلگرام با استفاده از آیپی ایران قابل دسترس نیست. در صورتی که در ایران زندگی میکنید نمیتوانید از کامپیوتر شخصی خودتان اقدام به اجرا کردن فایل مورد نظر کنید. در این آموزش ما از یک سرور مجازی استفاده کردیم. این سرور مجازی در هلند قرار داشت و به همین علت فایلهای ما به درستی اجرا میشد. اگر قصد نوشتن ربات تلگرام را دارید بهتر است هاست یا سرور شما در خارج از ایران باشد.
سخن آخر آموزش ساخت ربات تلگرام با پایتون
در این مقاله سعی شد به طور کامل به آموزش ساخت ربات تلگرام با پایتون پرداخته شود. نوشتن ربات تلگرام کار سادهای است و میتواند درآمد خوبی را برای شما به دنبال داشته باشد. برای یادگیری چگونگی نوشتن ربات تلگرام با پایتون، بهتر است ابتدا اصول و مبانی زبان برنامهنویسی پایتون را بیاموزید و سپس به سراغ این کار بروید. یادگیری زبان پایتون از راههای مختلفی امکان پذیر است که شما میتوانید هر کدام را انتخاب کنید.
فرادرس فیلمهای آموزشی حرفهای متعددی را توسط اساتید و متخصصان حوزههای مختلف تهیه کرده است که میتوانید برای افزایش سطح علمی خودتان از آنها استفاده کنید. برای مثال در صورتی که به مبحث ساخت ربات تلگرام با سایر زبانهای برنامه نویسی علاقه دارید، میتوانید به لینک زیر مراجعه کنید:
دیدگاهتان را بنویسید
You must be logged in to post a comment.