Друкарня від WE.UA

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.

Статті про вітчизняний бізнес та цікавих людей:

  • Як модні бренди формують культуру та впливають на глобальні fashion-тренди

    Модні бренди часто стають символами ідентичності. Вони впливають на вибір способу життя не тільки в одязі — розкішні годинники, парфуми, товари для дому та враження підкріплюють культурні наративи успіху, смаку та вишуканості.

    Теми цього довгочиту:

    Мода
  • Створити блог на Друкарні - швидко, легко та безкоштовно

    Друкарня - це зручне та безкоштовне середовище для ведення власного блогу. В даній статті ми розповідаємо про основні переваги та функціональні можливості для того, щоб зацікавити нових авторів створити власний блог на Друкарні. Будь ласка, поширте цю інформацію.

    Теми цього довгочиту:

    Друкарня
  • Чому Google Merchant Center може заблокувати обліковий запис?

    Одним з найбільш ефективних каналів продажів є система Google Merchant Center. Правда, акаунт в ній може бути несподівано заблокований, якщо при його налаштуванні були порушені правила системи. У статті розглянемо підводні камені і дамо відповідь як уникнути блокування

    Теми цього довгочиту:

    Google Merchant Center
  • Бухгалтерський супровід ФОП: сучасний підхід до обліку

    Завдяки розвитку інформаційних технологій, впровадженню сучасних рішень і сервісів процес ведення бухобліку бізнесу став значно простішим і зручним. З іншого боку, ті ж технології додали бухгалтерам роботи – з обліком онлайн-продажів і надходжень у валюті, CRM-системами та ін.

    Теми цього довгочиту:

    Бухгалтерський Облік Фоп
  • Пилосос як базова техніка для щоденного прибирання

    Підтримання чистоти в оселі потребує зручних і продуманих рішень, особливо коли йдеться про догляд за різними поверхнями. У домашньому побуті пилосос залишається базовою побутовою технікою, що поєднує сухе та вологе очищення без зайвих зусиль.

    Теми цього довгочиту:

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

11Довгочити
2.4KПрочитання
13Підписники
На Друкарні з 28 квітня

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

Це також може зацікавити:

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

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

Це також може зацікавити: