Telegram bot api python или aiogram

Содержание

Перед вами книга по разработке Telegram-ботов на языке Python с использованием фреймворка aiogram 3.x.

Ознакомиться с книгой можно здесь: https://mastergroosha.github.io/aiogram-3-guide/
Исходные тексты ко всем главам расположены в папке code.

  • aiogram 2.x (2019-2021): https://mastergroosha.github.io/aiogram-2-guide/
  • pyTelegramBotAPI (2015-2019): https://mastergroosha.github.io/telegram-tutorial/

Книга собрана с помощью mkdocs-material.

telegram-tutorial-2’s People

Contributors

Stargazers

Watchers

Forkers

telegram-tutorial-2’s Issues

Не работающий код

В текущих версиях aiogram код из примеров не работает. В версии 3.0.0b3 и выше добавлены фильтры для декораторов.
Было:

Добавить примечание про StateFilter

Помимо указания объектов типа State, можно использовать StateFilter или default_state (https://github.com/aiogram/aiogram/blob/dev-3.x/aiogram/fsm/state.py#L149-L150)

Telegram Bot Python #2 — Reply Keyboard, Inline Keyboard, Callbacks (aiogram)

Плохое качество скриншотов в уроке №1

TypeError: ChatTypeFilter() takes no arguments.

Глава «Фильтры и мидлвари», версия aiogram — 3.0.0b7.
Ошибка:

Traceback (most recent call last):
File «bot.py», line 6, in
from handlers import group_games
File «. handlersgroup_games.py», line 10, in
ChatTypeFilter(chat_type=[«group», «supergroup»])
TypeError: ChatTypeFilter() takes no arguments

Сработал данный вариант:

class ChatTypeFilter(Filter): def __init__(self, chat_type: Union[str, list]) -> None: self.chat_type = chat_type async def __call__(self, message: Message) -> bool: if isinstance(self.chat_type, str): return message.chat.type == self.chat_type else: return message.chat.type in self.chat_type

Некоторые элементы кода несовместимы с версией aiogram 3.0.0b5

Приведу примеры из вашего кода и мои исправления для актуальной версии 3.0.0b5:

Дальше везде параметр commands=[«start»] используем из класса Command.

Конечные автоматы (FSM)

В главе про конечные автоматы в примерах везде aiogram.dispatcher.fsm вместо aiogram.fsm

Еще по теме:  В Телеграмме плохо грузит

Localization for this tutorial

Aiogram very popular bot framework on python and it use in many country for create bot. Bot developers often use this tutorial and it is useful for them. But this guide is only in Russian. I suggest you localize this guide. This tutorial is published in mkdocs material and it supports many languages.

image

Неправильный импорт.

Не работает следующий импорт:
from aiogram.utils.keyboard import ReplyKeyboardMarkup, KeyboardButton

Работает:
from aiogram.types import ReplyKeyboardMarkup, KeyboardButton

Telegram бот на python — курс по созданию бота по документации aiogram и Telegram API

Callback handler в food.py

А как зарегистрировать dp.callback_query_handler() в food.py ?
Пытался сделать так:

async def any_func(call: types.CallbackQuery, message: types.Message): await message.answer(«callback for » + call.data) def register_handlers_food(dp: Dispatcher): dp.register_message_handler(food_start, commands=»food», state=»*») dp.register_message_handler(food_chosen, state=OrderFood.waiting_for_food_name) dp.register_message_handler(food_size_chosen, state=OrderFood.waiting_for_food_size) #Вот тут добавил хендлер dp.callback_query_handler(lambda c: c.data.startswith(«something»))

Добавить описание работы MagicData

Скачать фото используя Router

Что в оф. документации что в вашей книге, к сожалению не сказано как можно скачать фото, используя различные маршруты. Фото можно скачать только через объект Bot, но если его импортировать в файл с отдельным маршрутом, тогда получается что идет циклический импорт, так как этот файл уже импортирован dp.include_routers().
а объекты Message и PhotoSize не имеют метода download или get_file. Во второй версии aiogram это было проще.

Неизмененный импорт под новую версию фреймворка (3.0.0b7).

Глава «Особые апдейты», пункт «Добавление в группу».

. from aiogram.dispatcher.filters.chat_member_updated import . .
. from aiogram.filters.chat_member_updated import . .

Код не работает

Не работает код учебника в части про конечные автоматы

ImportError: cannot import name ‘Router’ from ‘aiogram’ (/home/runner/Bot-Kursach/venv/lib/python3.8/site-packages/aiogram/init.py)

ImportError: cannot import name ‘F’ from ‘aiogram’ (/home/runner/Bot-Kursach/venv/lib/python3.8/site-packages/aiogram/init.py)

ModuleNotFoundError: No module named ‘aiogram.dispatcher.filters.command’

Возможно ошибка в примере

Возможно тут имелось:

await message.answer(f»html.quote(message.text)>nnadded_text>», parse_mode=»HTML»)

Тк юзер может написать и будет ошибка

Передача именнованых аргументов через Dispatcher()

Передавать именованные аргументы можно не только в start_polling(. ), но также и через экземпляр диспетчера. Так может быть даже лучше, поскольку это более универсальный вариант для разных способов запуска бота (например через вебхуки)

В fsm.md поправить пример кода команды cancel

Добавить в главу про кнопки текст про инлайн-режим

Надо как-то уточнить, что при нажатии кнопки на сообщении, которое было отправлено из инлайн-режима, ситуация сложнее: нет объекта сообщени, т.е. непонятно, как редактировать текст, не зная оригинал.

MVC

Привет еще раз, я новенький в вашем ремесле ))
Самый главный вопрос как у меня так и у подавляющего большинства это MVC
Как бы ты разбил обычную скажем команду /start на паттерн MVC?
Что в model ? controller? view?

Еще по теме:  Как сделать гс в виде сердца в ТГ

Обратится к методам бота из хендлера

Извените за нубство, некак не пойму, как обратится к методам aiogram.Bot из функций хендлеров

Например в handlers/common.py

async def cmd_start(message: types.Message): await message.answer( «Выберите, что хотите заказать: напитки (/drinks) или блюда (/food).», reply_markup=types.ReplyKeyboardRemove() ) def register_handlers_common(dp: Dispatcher): dp.register_message_handler(cmd_start, commands=»start»)

Как здесь вызвать метод bot.get_chat_member ?
или какой есть путь, чтобы выполнять данный метод при срабатывании хендлера?

PS: Отличный туторриаль

Мета: идеи для уроков

Можно рассказать про content_types.ANY, про встроенный эскейпинг HTML и Markdown

Нерабочий фильтр в примере.

Глава «Фильтры и мидлвари», пункт «Примеры мидлварей».

Заменить F.text == «confirm» на F.data == «confirm» . Иначе обработчик не срабатывает при нажатии на кнопку.

Источник: coder.social

Telebot или Aiogram: что выбрать для бота в Telegram?

Создание ботов в Telegram становится все более популярным. Многие компании и частные лица используют их для автоматизации процессов, связанных с общением и продажами. Когда дело доходит до выбора библиотеки для разработки бота, две наиболее популярные на рынке — Telebot и Aiogram.

Telebot — это библиотека на языке Python, которая обеспечивает простой и легкий способ создания ботов в Telegram. Aiogram, с другой стороны, является более новой библиотекой, предоставляющей более широкий спектр функций и возможностей для создания ботов.

В этой статье мы сравним две библиотеки и рассмотрим их преимущества и недостатки, чтобы помочь вам выбрать наиболее подходящий инструмент для разработки своего бота в Telegram.

Сравнение Telebot и Aiogram

Что такое Telebot и Aiogram?

Telebot и Aiogram — это библиотеки для создания ботов в Telegram на языке программирования Python. Они облегчают создание ботов, предоставляя программистам множество функций и инструментов для работы с API Telegram.

Что отличает Telebot от Aiogram?

Telebot проще в использовании для начинающих разработчиков. Он имеет более простой синтаксис и обеспечивает меньшее количество возможностей для программирования. Однако, Telebot имеет хорошую документацию, что облегчает работу для многих.

С другой стороны, Aiogram предоставляет программистам больше возможностей для создания уникальных функций бота, и подходит более опытным разработчикам. Он имеет сложный синтаксис, но благодаря этому программисты могут создавать более продвинутые и кастомные решения, которые могут быть необходимы для различных проектов.

Какой выбрать?

Выбор между Telebot и Aiogram зависит от опыта программиста и конкретных требований проекта. Если вам нужно быстро создать простого бота и вы новичок в программировании, то лучше начать с Telebot. Если же вы опытный разработчик, и ваш проект требует уникальных функций и кастомных решений, то Aiogram будет лучшим выбором.

Еще по теме:  In Telegram or on Telegram как правильно

Сравнительная таблица Telebot и Aiogram

Telebot Aiogram
Простой синтаксис Сложный синтаксис
Ограниченное количество возможностей Большой функционал для создания уникальных решений
Хорошая документация Средняя документация

В целом, выбор между Telebot и Aiogram зависит от ваших нужд и уровня опыта в программировании. Имейте в виду, что каждая библиотека имеет свои преимущества и недостатки, и выбор должен зависеть от конкретных требований вашего проекта.

Какой фреймворк выбрать для создания своего бота в Telegram?

Telegram – одна из самых популярных мессенджеров с огромной аудиторией пользователей. Создание ботов для этой платформы – хороший способ автоматизировать коммуникацию с пользователями. Но какой фреймворк выбрать для реализации своей идеи?

Telebot — популярный фреймворк для создания ботов в Telegram. Он предоставляет множество полезных функций и прост в использовании. Среди его достоинств – хорошая документация и подробные примеры. Telebot может быть использован для реализации простых и сложных ботов, но если речь идет о сложной логике, возможно, стоит обратить внимание на другие фреймворки.

Aiogram – еще один популярный фреймворк для разработки ботов в Telegram. Он отличается от Telebot тем, что предоставляет больше возможностей для реализации сложных и продвинутых ботов. Aiogram поддерживает асинхронные запросы и работу с базой данных, что делает его хорошим выбором для масштабных проектов.

Выбор фреймворка зависит от ваших потребностей и опыта в программировании. Если речь идет о реализации простых ботов, то Telebot это отличный вариант. Если вы собираетесь создавать сложные и масштабные проекты, то Aiogram будет лучшим выбором.

Источник: usemake.ru

aiogram 2.25.1

aiogram is a pretty simple and fully asynchronous framework for Telegram Bot API written in Python 3.7 with asyncio and aiohttp. It helps you to make your bots faster and simpler.

Official aiogram resources

Подробности проекта

Ссылки проекта

Статистика

Метаданные

Лицензия: MIT License (MIT)

Требует: Python >=3.7

Сопровождающие

Классификаторы

История выпусков Уведомления о выпусках | Лента RSS

3.0.0b7 предварительный выпуск

3.0.0b6 предварительный выпуск

3.0.0b5 предварительный выпуск

3.0.0b4 предварительный выпуск

3.0.0b3 предварительный выпуск

3.0.0b2 предварительный выпуск

3.0.0b1 предварительный выпуск

3.0.0a18 предварительный выпуск

3.0.0a17 предварительный выпуск

3.0.0a16 предварительный выпуск

3.0.0a15 предварительный выпуск

3.0.0a14 предварительный выпуск

3.0.0a13 предварительный выпуск

3.0.0a12 предварительный выпуск

Источник: pypi.org

Рейтинг
( Пока оценок нет )
Загрузка ...