ساخت ربات تلگرام با پایتون امکان پذیر است، در این مقاله می خواهیم روش ساخت ربات تلگرام به کمک زبان برنامه نویسی Python را به شما عزیزان اموزش دهیم، همراه داتیس نتورک باشید.
ساخت ربات تلگرام با پایتون
ربات های تلگرامی می تواند به ارتقای کسب و کار ما کمک کند و می توانیم با کمک آن ها به صورت 24 ساعته و شبانه روزی یکسری از سرویس ها و خدمات را برای کاربران فراهم کنیم.
زبان برنامه نویسی پایتون با در اختیار داشتن توابع و امکانات قدرتمند خود کمک می کند بتوانیم کد های سمت سرور مورد نیاز برای مدیریت ربات تلگرام را بنویسیم.
در این مقاله سعی می کنیم یک راهنمای ساده برای ساخت ربات تلگرام با پایتون ارائه دهیم، همراه داتیس نتورک باشید.
ایجاد Bot در BotFather رسمی تلگرام
برای ساخت ربات تلگرام با پایتون ابتدا لازم است ربات خود را در ربات ساز رسمی تلگرام تعریف کنیم.
پس اولین کار این است که به ربات BotFather در تلگرام پیام start ارسال کنید.
@BotFather
مثل تصویر زیر روی استارت بزنید :
ربات یک پیام برای شما ارسال میکند که در این پیام روی newbot که در تصویر زیر مشخص است بزنید.
خب در این مرحله لازم است نام ربات خود را وارد کنید و اینتر کنید.
در مرحله بعد باید آیدی ربات تلگرام خود را تعریف کنید.
نکته : توجه کنید آخر نام ربات حتما باید Bot_ باشد.
خب تعریف ربات تلگرام در botfather تمام شد.
یک HTTP API در پیام ارسال شده مشخص است که باید آن را کپی کنید چون در مرحله بعد به آن احتیاج داریم.
خب! ربات تلگرام شما ساخته شده است و می توانید در تلگرام ان را پیدا کنید.
اما همانطور که در تصویر فوق می بینید هیچ اطلاعات و امکاناتی در ربات تلگرام ساخته شده وجود ندارد.
پس باید دکمه ها و ابزار های دیگری در روبات بسازیم! اما چگونه؟!
مراحل کد نویسی و ساخت ربات تلگرام با پایتون
لطفا مراحل زیر را به ترتیب و با دقت انجام دهید.
نصب کتابخانه
از آنجا که قصد داریم از یک کتابخانه برای این آموزش استفاده کنیم ، با استفاده از این دستور آن را نصب کنید:
pip3 install python-telegram-bot
برنامه را بنویسید
بعد از اجرای همه ی کد ها باید تصویر یک سگ بر روی مانیتور نمایش داده شود در صورتی که همه ی مراحل را به طور صحیح پیموده باشیم .
هنگام ارسال دستور /bop ، این ربات باید تصویر سگ را برگرداند.
در ادامه ساخت ربات تلگرام با پایتون برای اینکه بتوانیم این کار را انجام دهیم ، می توانیم از API عمومی از RandomDog استفاده کنیم تا به ما در تولید تصاویر تصادفی از سگ کمک کند.
گردش کار بات ما به همین سادگی است:
access the API -> get the image URL -> send the image
1- کتابخانه ها را وارد کنید
اول ، تمام کتابخانه های مورد نیاز خود را وارد کنید:
from telegram.ext import Updater, CommandHandler import requests import re
2- به API دسترسی پیدا کنید و آدرس URL دریافت کنید
بیایید یک تابع برای دریافت URL ایجاد کنیم.
در ادامه ساخت ربات تلگرام با پایتون با استفاده از کتابخانه درخواست ها می توانیم به API دسترسی پیدا کرده و داده های json را بدست آوریم.
contents = requests.get('https://random.dog/woof.json').json()
می توانید داده های json را با درمرورگر خود دسترسی به این URL بررسی کنید:
https://random.dog/woof.json
چیزی شبیه به این را روی صفحه نمایش خود خواهید دید:
{“url":"https://random.dog/*****.JPG"}
از آنجا كه ما به آن پارامتر نياز داريم تا بتوانيم تصوير را ارسال كنيم ، URL تصویر را بدست آوريد:
image_url = contents['url']
حال با استفاده از تابع get_url() کد یاد شده را بپوشانید:
def get_url(): contents = requests.get('https://random.dog/woof.json').json() url = contents['url'] return url
3- ارسال تصویر
برای ارسال پیام تصویری به دو پارامتر نیاز داریم ، URL تصویر و ID گیرنده! (این می تواند یک ID گروه یا ID کاربر باشد)
ما می توانیم با فراخوانی تابع get_url () خود ، آدرس تصویر را بدست آوریم.
url = get_url()
recipient’s ID را نیز با استفاده از دستور زیر می توان به دست آورد :
chat_id = update.message.chat_id
حال که image URL and the recipient’s ID به دست امد ، زمان ان رسیده با دستور زیر عکس مربوطه ارسال شود:
bot.send_photo(chat_id=chat_id, photo=url)
کدمربوطه باید در تابعی به اسم bop قرار گیرد و ر نهایتکد به دست امده باید مطابق کد زیر باشد .
def bop(bot, update): url = get_url() chat_id = update.message.chat_id bot.send_photo(chat_id=chat_id, photo=url)
4- برنامه ی اصلی
در آخر کار ساخت ربات تلگرام با پایتون ، برای اجرای برنامه باید یک Function دیگر به نام Main ایجاد کنید.
فراموش نکنید که YOUR_TOKEN را با توکن ای که در این آموزش ایجاد کردیم تغییر دهید.
def main(): updater = Updater('YOUR_TOKEN') dp = updater.dispatcher dp.add_handler(CommandHandler('bop',bop)) updater.start_polling() updater.idle() if __name__ == '__main__': main()
در نهایت باید کد زیر به نمایش آید :
from telegram.ext import Updater, InlineQueryHandler, CommandHandler import requests import re def get_url(): contents = requests.get('https://random.dog/woof.json').json() url = contents['url'] return url def bop(bot, update): url = get_url() chat_id = update.message.chat_id bot.send_photo(chat_id=chat_id, photo=url) def main(): updater = Updater('YOUR_TOKEN') dp = updater.dispatcher dp.add_handler(CommandHandler('bop',bop)) updater.start_polling() updater.idle() if __name__ == '__main__': main()
5- برنامه را اجرا کنید
عالی! ساخت ربات تلگرام در پایتون را تمام کردید.
اکنون بیایید بررسی کنیم که آیا این کار می کند.
پرونده را ذخیره کنید ، main.py آن بنویسید ، سپس با استفاده از این دستور آن را اجرا کنید:
python3 main.py
با دسترسی به این URL به ربات تلگرام خود بروید:
https://telegram.me/YOUR_BOT_USERNAME
فرمان /bop را ارسال کنید.
اگر همه چیز به طور کامل اجرا شود ، ربات با یک تصویر سگ تصادفی پاسخ خواهد داد.
حل مشکلات و ارور ها
در ادامه مراحل ساخت ربات تلگرام با پایتون لازم از یکسری مشکلات را بررسی و حل کنیم.
عالی! حالا شما یک ربات دارید که هر زمان که بخواهید ، یک تصویر سگ را برای شما ارسال می کند.
API RandomDog نه تنها تصاویر ، بلکه فیلم ها و GIF ها را نیز تولید می کند.
اگر به API دسترسی پیدا کنیم و یک فیلم یا GIF دریافت کنیم ، خطایی رخ می دهد و ربات آن را برای شما ارسال نمی کند.
بیایید این مسئله را برطرف کنیم تا ربات پیامی را با پیوست تصویربرای شما ارسال کند.
در این برنامه اگر یک ویدیو یا GIF بگیریم ، تا زمانی که تصویری نگیریم ، مکرر با API ارتباط برقرار می شود.
برای حل این مشکل از regex استفاده خواهیم کرد.
برای اینکه بتوانیم بین عکس ، فیلم و گیف های موجود ، تمایز قائل شویم بخش نهایی URL مربوطه را در نظر می گیریم :
https://random.dog/*****.JPG
فایل های مربوطه را مشخص کرده یا به عبارت بهتر نامگذاری می کنیم:
allowed_extension = ['jpg','jpeg','png']
سپس از regex برای استخراج پسوند پرونده از URL استفاده کنید:
file_extension = re.search("([^.]*)$",url).group(1).lower()
با استفاده از آن کد ، فانکشن ای به نام get_image_url () ایجاد کنید.
تا URL را تکرار کنید تا اینکه پسوند پرونده مورد نظر خود را بدست آوریم (jpg ، jpeg ، png).
def get_image_url(): allowed_extension = ['jpg','jpeg','png'] file_extension = '' while file_extension not in allowed_extension: url = get_url() file_extension = re.search("([^.]*)$",url).group(1).lower() return url
کد خود را اصلاح کنید
عالی! حالا برای قسمت آخر ، خط تابع url = get_url () را در تابع bop () با url = get_image_url () جایگزین کنید ، و کد شما باید مانند این باشد:
from telegram.ext import Updater, InlineQueryHandler, CommandHandler import requests import re def get_url(): contents = requests.get('https://random.dog/woof.json').json() url = contents['url'] return url def get_image_url(): allowed_extension = ['jpg','jpeg','png'] file_extension = '' while file_extension not in allowed_extension: url = get_url() file_extension = re.search("([^.]*)$",url).group(1).lower() return url def bop(bot, update): url = get_image_url() chat_id = update.message.chat_id bot.send_photo(chat_id=chat_id, photo=url) def main(): updater = Updater('YOUR_TOKEN') dp = updater.dispatcher dp.add_handler(CommandHandler('bop',bop)) updater.start_polling() updater.idle() if __name__ == '__main__': main()
خب! تمام شد توانستیم یک ربات تلگرام فوق العاده بسازیم.
منبع :
امیدواریم این آموزش توانسته باشد برای شما مفید باشد و ساخت ربات تلگرام پیشرفته با پایتون را به خوبی به شما عزیزان آموزش داده باشیم.
اگر این مقاله که با زحمت بسیار آماده شده برای شما مفید بوده حتما کانال تلگرام داتیس نتورک را دنبال کنید.
استاد یه سوال ما میتونیم تو پایتون برای باتمون برای هر گروه یا چنل یه ای دی مشخص تعریف کنیم؟