نحوه ساخت یک ربات تلگرامی ساده با پایتون ۳
اگر کاربر تلگرام باشید ، مطمئناً در برخی از مواقع با یک چت بات “مکالمه” کرده اید. ربات های تلگرام با قابلیت شخصی سازی شگفت انگیز خود ، مزایای مختلفی را ارائه می دهند – چه برای خودکار سازی کارها و چه فقط کمی سرگرمی با بازی ها در گروه چت شما. اگرچه برخی توسعه یک ربات را کاری دلهره آور می دانند ، اما واقعاً اینگونه نیست. با یک برنامه ریزی صحیح ، می توانید بات تلگرام را در کمتر از یک ساعت فعال و ایچاد کنید! در اینجا نحوه ساخت یک ربات ساده تلگرامی وجود دارد که در صورت درخواست تصاویر زیبا ، شکلک هایی را تولید می کند.
شروع ساخت ربات تلگرامی
در این آموزش ساخت ربات تلگرامی ، ما قصد داریم از پایتون ۳ ، python-telegram-bot و کتابخانه requests و TheCatAPI استفاده کنیم .
هر ربات در تلگرام یک رمز منحصر به فرد دارد که به او کمک می کند تا با استفاده از رابط پیام رسانی برنامه با Bot API ارتباط برقرار کند . Bot API ، یکی از محبوب ترین ویژگی های تلگرام در بین توسعه دهندگان ، به شما امکان می دهد از پیام های آن به عنوان رابط استفاده کنید.
برای به دست آوردن رمز ، مکالمه ای را با BotFather آغاز کنید که همانطور که از نامش پیداست ، یک ربات رسمی است که به شما امکان می دهد ربات های خود را ایجاد و شخصی سازی کنید. شما می توانید با استفاده از لینک داده شده به ربات دسترسی پیدا کنید و یا گزینه “botfather” را در تلگرام جستجو کنید.
پس از ورود به گپ ، با تایپ کردن دستور newbot/ ربات خود را ایجاد کنید . در ادامه تنظیم نام و نام کاربری ربات خود را بدهید . (ما تصمیم گرفتیم نام خود را pawsomebot قرار دهیم). به دنبال این ، token منحصر به فرد ربات خود دریافت خواهید کرد.
اکنون که همه پیش نیازها را داریم ، وقت آن است که به قسمت مهیج برویم!
نصب کتابخانه ها
اگر از ویندوز استفاده می کنید ، خط فرمان را باز کرده و دستورات زیر را تایپ کنید :
pip install python-telegram-bot
pip install requests
اگر از macOS یا Linux استفاده می کنید ، به جای آن از دستورات زیر در ترمینال خود استفاده کنید. علاوه بر این در Linux ، مطمئن شوید که به عنوان یک کاربر با امتیازات sudo وارد سیستم شده اید.
pip3 install python-telegram-bot
pip3 install requests
نوشتن برنامه
یک پوشه جدید در رایانه خود ایجاد کنید و آن را در ویرایشگر مورد علاقه خود باز کنید. یک فایل جدید ایجاد کنید و نام آن را main.py بگذارید. این فایل حاوی کد منبع ربات شما خواهد بود.
حال ، بیایید کتابخانه هایی را که قبلاً نصب کرده ایم ، همراه با برخی از توابع داخلی آنها وارد کنیم.
from telegram.ext import Updater, CommandHandler
import requests
import re
جریان برنامه از اینجا به بعد دسترسی به TheCatAPI ، بدست آوردن URL یک تصویر تصادفی و ارسال آن تصویر به گپ کاربر است.
بیایید با یک تابع برای دریافت URL تصویر شروع کنیم ، این کار با استفاده از ماژول درخواست انجام می شود. در این تابع ، ما داده های JSON یک پرونده تصادفی ارائه شده توسط TheCatAPI را بارگیری کرده و URL آن را استخراج می کنیم تا بعداً استفاده شود. برای مشاهده قالب شی JSON ، از مرورگر خود به https://api.thecatapi.com/v1/images/search بروید . چیزی شبیه به این را مشاهده خواهید کرد :
[{“breeds”:[],”id”:”a8c”,”url”:”url.jpg”,”width”:۸۰۰,”height”:۵۳۳}]
توجه داشته باشید که شی JSON آرایه ای است که فرهنگ لغت را در خود جای داده است. این فرهنگ لغت حاوی URL با کلید “url” است. برای استخراج URL ، باید اولین عنصر آرایه و سپس کلید مربوطه را ارجاع دهیم.
def getUrl():
#obtain a json object with image details
#extract image url from the json object
contents = requests.get(‘https://api.thecatapi.com/v1/images/search’)
url = contents[0][‘url’]
return url
در مرحله بعدی ، ما باید این تصویر را به چت کاربر ارسال کنیم. برای این منظور ، ما به یک URL تصویر و همچنین شناسه منحصر به فرد چت کاربر نیاز داریم. بیایید یک عملکرد بسته بندی برای این کار ایجاد کنیم. ابتدا ، () getUrl را فراخوانی می کنیم . تابع برای بدست آوردن URL یک تصویر تصادفی — این URL هر بار که برنامه شما از طریق عملکرد تکرار می شود تغییر می کند.
سپس با به دست آوردن شناسه گپ کاربر گیرنده ، که مکان هدف ربات را برای پیام ها مشخص می کند و تجزیه URL از طریق عملکرد send_photo () bot API ، دنبال می شود.
def sendImage(bot, update):
url = getUrl()
chat_id = update.message.chat_id
bot.send_photo(chat_id=chat_id, image=url)
برای کسب اطلاعات بیشتر در مورد توابع مختلف داخلی API Bot و نحوه کار آنها ، در صورت تمایل می توانید اسناد رسمی تلگرام را بعد از این آموزش بررسی کنید.
در آخر ، بیایید تابعی ایجاد کنیم که عملکرد کلی ربات را کنترل کند. این تابع — که به طور متداول () main نامیده می شود – جایی است که ما با استفاده از توکن که در ابتدای آموزش به دست آوردیم درخواست HTTP را به Bot API ارسال می کنیم و سپس تعامل کاربر ربات را تعریف می کنیم. در موردی به سادگی ما ، این اساساً به معنای شروع ربات و فراخوانی عملکرد () sendImage در صورت درخواست کاربر است.
def main():
updater = Updater(“۱۱۹۰۸۸۸۰۳۵:AAGeJ9316R95NqJLFefV5vQA-UL4np11V2c”)
#call sendImage() when the user types a command in the telegram chat
updater.dispatcher.add_handler(CommandHandler(‘meow’,sendImage))
#start the bot
updater.start_polling()
updater.idle()
if __name__ == ‘__main__’:
main()
برنامه نهایی شما باید به این شکل باشد:
from telegram.ext import Updater, CommandHandler
import requests
import re
def getUrl():
#obtain a json object with image details
#extract image url from the json object
contents = requests.get(‘https://api.thecatapi.com/v1/images/search’)
url = contents[0][‘url’]
return url
def sendImage(bot, update):
url = getUrl()
chat_id = update.message.chat_id
bot.send_photo(chat_id=chat_id, image=url)
def main():
updater = Updater(“۱۱۹۰۸۸۸۰۳۵:AAGeJ9316R95NqJLFefV5vQA-UL4np11V2c”)
#call sendImage() when the user types a command in the telegram chat
updater.dispatcher.add_handler(CommandHandler(‘meow’,sendImage))
#start the bot
updater.start_polling()
updater.idle()
if __name__ == ‘__main__’:
main()
ربات تلگرام خود شما
تبریک می گویم! ساخت ربات تلگرامی شما تمام شد . پس از درخواست ، تصاویر منبع باز از بامزه ترین گربه های اینترنتی ارسال می کند. برنامه خود را اجرا کنید و برای فعال کردن آن ، در گپ ربات خود تایپ کنید meow/ .
گرچه ممکن است این یک ربات ساده با قابلیت های محدود باشد ، اما نشان می دهد که اکوسیستم توسعه ربات تلگرام تا چه اندازه قدرتمند است. شما می توانید برای افزایش عملکرد ربات خود ، تعداد برنامه های پیچیده را اضافه کنید – تا حد بی نهایت . برای کسب اطلاعات بیشتر در مورد ربات های جالب تلگرام که همکاران در طول این سالها ساخته اند ، لیست ربات های مفید تلگرام ما را بررسی کنید .
همچنین می توانید انواع برنامه های متن باز را برای ربات های تلگرام در سیستم عامل هایی مانند GitHub پیدا کنید. اکثر مجوزهای منبع باز به شما امکان می دهد از کد منبع یک برنامه استفاده کنید ، مطالعه کنید ، دانلود کنید یا اصلاح کنید.
میزبان ربات تلگرام خود به صورت آنلاین باشید
اکنون که ربات خود را فعال کرده اید ، سعی کنید main.py را بر روی رایانه شخصی خود ببندید و از ربات موجود در برنامه پیام رسان تلگرام خود استفاده کنید. آیا باز هم به دستور meow/ پاسخ می دهد ؟ نه ، اینطور نیست
به عنوان یک مبتدی ، ممکن است گیج شوید چرا در حال حاضر ، یک ربات در اینترنت ایجاد کرده اید ، ولی باید main.py در رایانه شما فعال باشد. دلیل این امر این است که برنامه از رایانه شما به عنوان سرور محلی برای ارسال درخواستهای HTTP به API های استفاده شده در این برنامه استفاده می کند.
بدین ترتیب ، هر بار که می خواهید از برنامه استفاده کنید ، اجرای برنامه نه عملی است و نه راحت. برای حل این مشکل ، باید وابستگی ربات را به دستگاه شما برطرف کنیم.
می توانید برنامه خود را در فضای ابری پیاده سازی کنید. به یک سکوی میزبان برنامه های وب مانند Heroku ، AWS ، Google Cloud یا Microsoft Azure بروید و اشتراکی را انتخاب کنید که متناسب با نیاز شما باشد. توصیه می کنیم با افزایش مقیاس یا دامنه برنامه خود ، یک نسخه آزمایشی یا اشتراک رایگان انتخاب و آن را ارتقا دهید.
دیدگاه ها