برنامه نویسی, تکنولوژی

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

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

ساخت ربات تلگرام با پایتون امکان پذیر است، در این مقاله می خواهیم روش ساخت ربات تلگرام به کمک زبان برنامه نویسی 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()

خب! تمام شد توانستیم یک ربات تلگرام فوق العاده بسازیم.

منبع :

  1. freecodecamp

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

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

مطالب مرتبط

1 نظر در “آموزش ساخت ربات تلگرام با پایتون

  1. امیر گفت:

    استاد یه سوال ما میتونیم تو پایتون برای باتمون برای هر گروه یا چنل یه ای دی مشخص تعریف کنیم؟

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *