Telegram-боти на Python: огляд п’яти найкращих фреймворків/бібліотек

У цій статті ми розглянемо п'ять популярних фреймворків для роботи з Telegram ботами на Python: pyTelegramBotAPI, Aiogram, python-telegram-bot, telethon та pyrogram. Для кожного з них ми наведемо приклад простої програми, а також розглянемо плюси та мінуси.

1. pyTelegramBotAPI

pyTelegramBotAPI або telebot - це простий та зручний фреймворк для створення Telegram ботів на Python. Він дозволяє швидко розробляти прості боти, але має обмежений функціонал порівняно з іншими фреймворками.

Приклад програми:

import telebot

TOKEN = 'bot_token'
bot = telebot.TeleBot(TOKEN)

@bot.message_handler(commands=['start'])
def send_welcome(message):
    bot.reply_to(message, "Привіт! Я твій бот.")

@bot.message_handler(func=lambda message: True)
def echo(message):
    bot.reply_to(message, message.text)

bot.polling()

Плюси:

  • Простота використання

  • Швидке створення простих ботів

Мінуси:

  • Обмежений функціонал порівняно з іншими фреймворками

2. Aiogram

Aiogram - асинхронний фреймворк для роботи з Telegram ботами на Python. Aiogram має більший функціонал порівняно з pyTelegramBotAPI, але вимагає більш глибоких знань для початківців.

Приклад програми:

from aiogram import Bot, Dispatcher, types
from aiogram.utils import executor

TOKEN = 'bot_token'
bot = Bot(token=TOKEN)
dp = Dispatcher(bot)

@dp.message_handler(commands=['start'])
async def send_welcome(message: types.Message):
    await message.reply("Привіт! Я твій бот.")

@dp.message_handler()
async def echo(message: types.Message):
    await message.reply(message.text)

if __name__ == '__main__':
    executor.start_polling(dp)

Плюси:

  • Асинхронність

  • Більший функціонал порівняно з pyTelegramBotAPI

Мінуси:

  • Вищий поріг входу для початківців

3. python-telegram-bot

python-telegram-bot - потужний фреймворк для розробки Telegram ботів на Python з широким функціоналом та активною спільнотою. Однак, він не підтримує асинхронність.

Приклад програми:

from telegram import Update
from telegram.ext import Updater, CommandHandler, MessageHandler, Filters, CallbackContext

TOKEN = 'bot_token'

def start(update: Update, context: CallbackContext):
    update.message.reply_text('Привіт! Я твій бот.')

def echo(update: Update, context: CallbackContext):
    update.message.reply_text(update.message.text)

def main():
    updater = Updater(TOKEN)
    dp = updater.dispatcher
    dp.add_handler(CommandHandler("start", start))
    dp.add_handler(MessageHandler(Filters.text & ~Filters.command, echo))
    updater.start_polling()
    updater.idle()

if __name__ == '__main__':
    main()

Плюси:

  • Широкий функціонал

  • Активна спільнота

Мінуси:

  • Відсутність асинхронності

4. Telethon

Telethon - асинхронний фреймворк для роботи з повним Telegram API на Python. Telethon дозволяє розробляти складніші проекти, але не спеціалізований для роботи з ботами та має вищий поріг входу для початківців.

Приклад програми:

from telethon import TelegramClient, events

api_id = 'api_id'
api_hash = 'api_hash'
bot_token = 'bot_token'

client = TelegramClient('bot', api_id, api_hash).start(bot_token=bot_token)

@client.on(events.NewMessage(pattern='/start'))
async def start(event):
    await event.respond('Привіт! Я твій бот.')
    raise events.StopPropagation

@client.on(events.NewMessage)
async def echo(event):
    await event.respond(event.text)

client.run_until_disconnected()

Плюси:

  • Робота з повним Telegram API

  • Асинхронність

Мінуси:

  • Вищий поріг входу для початківців

  • Не спеціалізований для роботи з ботами

5. Pyrogram

Pyrogram - ще один асинхронний фреймворк для роботи з повним Telegram API на Python. Pyrogram також дозволяє розробляти складніші проекти, але не спеціалізований для роботи з ботами та має вищий поріг входу для початківців.

Приклад програми:

from pyrogram import Client, filters

api_id = 'api_id'
api_hash = 'api_hash'
bot_token = 'bot_token'

app = Client("bot", api_id, api_hash, bot_token=bot_token)

@app.on_message(filters.command("start"))
async def start(client, message):
    await message.reply_text("Привіт! Я твій бот.")

@app.on_message(filters.text)
async def echo(client, message):
    await message.reply_text(message.text)

app.run()

Плюси:

  • Асинхронність

  • Робота з повним Telegram API

Мінуси:

  • Вищий поріг входу для початківців

  • Не спеціалізований для роботи з ботами

Висновки

Усі вищенаведені фреймворки мають свої переваги та недоліки. Вибір фреймворка залежить від ваших потреб та рівня знань. Для простих ботів можна використовувати pyTelegramBotAPI або python-telegram-bot, для більш складних проектів та асинхронної роботи - aiogram, Telethon або Pyrogram.

Поділись своїми ідеями в новій публікації.
Ми чекаємо саме на твій довгочит!
Д
Дмитро@dmytro2

2.2KПрочитань
4Автори
12Читачі
На Друкарні з 28 квітня

Більше від автора

Вам також сподобається

Коментарі (0)

Підтримайте автора першим.
Напишіть коментар!

Вам також сподобається