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

Create A Telegram Bot Using Python

Create-A-Telegram-Bot-Using-Python

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

قدم اول: ساخت ربات

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

سپس عبارت newbot/ را به ربات ارسال کنید. ربات از شما می خواهد که یک نام برای ربات خود انتخاب کنید. پس از آن، یک نام کاربری برای ربات انتخاب کنید.

توجه داشته باشد که نام کاربری ربات باید به bot ختم شود.

در صورت قبولی نام کاربری یک پیام که در آن یک توکن است به شما ارسال می شود مانند تصویر بالا

قدم دوم: برنامه نویسی ربات با پایتون

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

pip install python-telegram-bot
pip install requests

سپس یک فایل به نام bot.py ایجاد کنید.

دستورات زیر را وارد کنید:

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
import requests
import re

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

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

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

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

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

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

در ادامه دستورات زیر را به فایل bot.py اضافه کنید:

updater = Updater("your_own_API_Token got from BotFather",
                use_context=True)


def start(update: Update, context: CallbackContext):
    update.message.reply_text("Enter /img for send image")

توکنی را که از ربات BotFather دریافت کردید، به عنوان ورودی به تابع Updater وارد کنید.

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

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

بعد، برای برنامه نویسی گزینه image/ دستورات زیر را وارد کنید:

def image(update: Update, context: CallbackContext):
    url = get_image_url()
    update.message.reply_photo(url)

در نهایت یرای افزودن Handlerها برای مدیریت پیام ها و دستورات، کد زیر را به فایل bot.py اضافه کنید:

updater.dispatcher.add_handler(CommandHandler('image', image))
updater.dispatcher.add_handler(CommandHandler('start', start))
updater.start_polling()

همانطور که مشاهده می کنید ربات دارای دو گزنیه به نام start و image می باشد.

امیدوارم این آموزش مفید بوده باشد.


منبع: وب سایت geeksforgeeks

نویسنده شوید

دیدگاه‌های شما

در این قسمت، به پرسش‌های تخصصی شما درباره‌ی محتوای مقاله پاسخ داده نمی‌شود. سوالات خود را اینجا بپرسید.