📌 Webhook'и
Альтернативный способ получать обновления от серверов Telegram — вебхуки. Бот говорит, на какую ссылку нужно отправлять данные когда происходит какое-то событие.
Библиотека
Вебхуки в Telegram работают только с https ссылками. Если вы не желаете покупать сертификат, можете использовать самоподписанный, но его надо будет передавать в
Гайд по вебхукам от тг
#урок #aiogram
Альтернативный способ получать обновления от серверов Telegram — вебхуки. Бот говорит, на какую ссылку нужно отправлять данные когда происходит какое-то событие.
Библиотека
aiogram
использует aiohttp
как клиент и сервер. Чтобы проверить работоспособность нужен сервер или белый IP, это есть не у всех, поэтому лучше использовать ngrok.Вебхуки в Telegram работают только с https ссылками. Если вы не желаете покупать сертификат, можете использовать самоподписанный, но его надо будет передавать в
bot.set_webhook()
.Гайд по вебхукам от тг
#урок #aiogram
📌
Такой подход называется Bot polling. Он не очень эффективный, время от времени отваливается и создаёт много «шума», поэтому лучше использовать Webhook'и (в след. посте), но за них кому-то придётся платить.
#урок #aiogram
Bot polling
Чтобы понять, написал кто-либо боту или нет, он несколько раз в минуту отправляет запрос на сервера Telegram и спрашивает: «Случилось ли что-то интересненькое?»Такой подход называется Bot polling. Он не очень эффективный, время от времени отваливается и создаёт много «шума», поэтому лучше использовать Webhook'и (в след. посте), но за них кому-то придётся платить.
#урок #aiogram
📌
Пока простые темы, дальше будет интереснее. Всё про aiogram 3.0
Код
#урок #aiogram
Bot
и Dispatcher
Bot(token)
— объект, для работы с API телеграмм. Это просто обёртка, никакой магии здесь нет.Dispatcher(bot)
— обработчик входящих событий: полученное сообщение, отредактированное, Callback'и. Через него можно передавать объекты в функции.Пока простые темы, дальше будет интереснее. Всё про aiogram 3.0
Код
#урок #aiogram
📌 Разница между aiogram 2.x и aiogram 3.0
Объективно, у третьей версии красивее документация. К сожалению, она не полная. У неё много фич, по типу роутов (чуть позже поговорим о них), поддержки приглашений и «мультиботов».
Установка:
Вторая версия более стабильная, она уже «проверена временем». Если вам важна стабильность и не нужны новые фичи, то выбирайте вторую версию, если хочется что-то нового,
Установка:
#урок #aiogram
Объективно, у третьей версии красивее документация. К сожалению, она не полная. У неё много фич, по типу роутов (чуть позже поговорим о них), поддержки приглашений и «мультиботов».
Установка:
pip install --pre -U aiogram
Вторая версия более стабильная, она уже «проверена временем». Если вам важна стабильность и не нужны новые фичи, то выбирайте вторую версию, если хочется что-то нового,
aiogram 3.0
— отличный вариант.Установка:
pip install -U aiogram
#урок #aiogram
📌
Поддерживает бета версию aiogram, для этого нужно к
📕 Документация
Я увидел, что вы набрали в два раза больше ⚡️ чем нужно на предыдущем посте. Уже готовлю материал.
#урок #aiogram
aiogram-dialog
Библиотека для создания многоуровневых и трудных диалоговых меню в ботах, используемая с aiogram
. Поддерживает бета версию aiogram, для этого нужно к
pip install
добавить --pre
.📕 Документация
Я увидел, что вы набрали в два раза больше ⚡️ чем нужно на предыдущем посте. Уже готовлю материал.
#урок #aiogram
📌
Сейчас доступна ещё и бета версия с новыми возможности. Ей доступны новые фишки тг, по типу приглашений в чат, но она ещё тестируется и со скудной документацией.
Тут можно найти список по шаблонам, примерам и библиотекам для aiogram.
Когда наберёте 10 ⚡️, сделаю небольшой курс по aiogram
#урок #aiogram
aiogram
Асинхронная библиотека для создания telegram ботов. У неё 3к звёзд на Github, большое сообщество и неплохая документация.Сейчас доступна ещё и бета версия с новыми возможности. Ей доступны новые фишки тг, по типу приглашений в чат, но она ещё тестируется и со скудной документацией.
Тут можно найти список по шаблонам, примерам и библиотекам для aiogram.
Когда наберёте 10 ⚡️, сделаю небольшой курс по aiogram
#урок #aiogram
📌
Сейчас доступна ещё и бета версия с новыми возможности. Ей доступны новые фишки тг, по типу приглашений в чат, но она ещё тестируется и со скудной документацией.
Тут можно найти список по шаблонам, примерам и библиотекам для aiogram.
Когда наберёте 10 ⚡️, сделаю небольшой курс по aiogram
#урок #aiogram
aiogram
Асинхронная библиотека для создания telegram ботов. У неё 3к звёзд на Github, большое сообщество и неплохая документация.Сейчас доступна ещё и бета версия с новыми возможности. Ей доступны новые фишки тг, по типу приглашений в чат, но она ещё тестируется и со скудной документацией.
Тут можно найти список по шаблонам, примерам и библиотекам для aiogram.
Когда наберёте 10 ⚡️, сделаю небольшой курс по aiogram
#урок #aiogram
📌
Поддерживает бета версию aiogram, для этого нужно к
📕 Документация
Я увидел, что вы набрали в два раза больше ⚡️ чем нужно на предыдущем посте. Уже готовлю материал.
#урок #aiogram
aiogram-dialog
Библиотека для создания многоуровневых и трудных диалоговых меню в ботах, используемая с aiogram
. Поддерживает бета версию aiogram, для этого нужно к
pip install
добавить --pre
.📕 Документация
Я увидел, что вы набрали в два раза больше ⚡️ чем нужно на предыдущем посте. Уже готовлю материал.
#урок #aiogram
📌 Разница между aiogram 2.x и aiogram 3.0
Объективно, у третьей версии красивее документация. К сожалению, она не полная. У неё много фич, по типу роутов (чуть позже поговорим о них), поддержки приглашений и «мультиботов».
Установка:
Вторая версия более стабильная, она уже «проверена временем». Если вам важна стабильность и не нужны новые фичи, то выбирайте вторую версию, если хочется что-то нового,
Установка:
#урок #aiogram
Объективно, у третьей версии красивее документация. К сожалению, она не полная. У неё много фич, по типу роутов (чуть позже поговорим о них), поддержки приглашений и «мультиботов».
Установка:
pip install --pre -U aiogram
Вторая версия более стабильная, она уже «проверена временем». Если вам важна стабильность и не нужны новые фичи, то выбирайте вторую версию, если хочется что-то нового,
aiogram 3.0
— отличный вариант.Установка:
pip install -U aiogram
#урок #aiogram
📌
Пока простые темы, дальше будет интереснее. Всё про aiogram 3.0
Код
#урок #aiogram
Bot
и Dispatcher
Bot(token)
— объект, для работы с API телеграмм. Это просто обёртка, никакой магии здесь нет.Dispatcher(bot)
— обработчик входящих событий: полученное сообщение, отредактированное, Callback'и. Через него можно передавать объекты в функции.Пока простые темы, дальше будет интереснее. Всё про aiogram 3.0
Код
#урок #aiogram
📌
Такой подход называется Bot polling. Он не очень эффективный, время от времени отваливается и создаёт много «шума», поэтому лучше использовать Webhook'и (в след. посте), но за них кому-то придётся платить.
#урок #aiogram
Bot polling
Чтобы понять, написал кто-либо боту или нет, он несколько раз в минуту отправляет запрос на сервера Telegram и спрашивает: «Случилось ли что-то интересненькое?»Такой подход называется Bot polling. Он не очень эффективный, время от времени отваливается и создаёт много «шума», поэтому лучше использовать Webhook'и (в след. посте), но за них кому-то придётся платить.
#урок #aiogram
📌 Webhook'и
Альтернативный способ получать обновления от серверов Telegram — вебхуки. Бот говорит, на какую ссылку нужно отправлять данные когда происходит какое-то событие.
Библиотека
Вебхуки в Telegram работают только с https ссылками. Если вы не желаете покупать сертификат, можете использовать самоподписанный, но его надо будет передавать в
Гайд по вебхукам от тг
#урок #aiogram
Альтернативный способ получать обновления от серверов Telegram — вебхуки. Бот говорит, на какую ссылку нужно отправлять данные когда происходит какое-то событие.
Библиотека
aiogram
использует aiohttp
как клиент и сервер. Чтобы проверить работоспособность нужен сервер или белый IP, это есть не у всех, поэтому лучше использовать ngrok.Вебхуки в Telegram работают только с https ссылками. Если вы не желаете покупать сертификат, можете использовать самоподписанный, но его надо будет передавать в
bot.set_webhook()
.Гайд по вебхукам от тг
#урок #aiogram
📌 Форматирование сообщений
Telegram поддерживает два типа форматирования: HTML и MarkdownV2. Есть ещё Markdown, но он уже устарел.
HTML — форматирование с помощью тегов. Если пользователь отправит
MarkdownV2 — форматирование с помощью спецсимволов:
Предпочтительный использовать HTML, с ним меньше шанс допустить ошибку. Вот тут документация от Telegram.
Код
#урок #aiogram
Telegram поддерживает два типа форматирования: HTML и MarkdownV2. Есть ещё Markdown, но он уже устарел.
HTML — форматирование с помощью тегов. Если пользователь отправит
<b>Этот тест будет жирным<b>
, чтобы не применять форматирование, нужно использовать html.quote()
.MarkdownV2 — форматирование с помощью спецсимволов:
__underline__
, bold text, link on MarkdownV2.Предпочтительный использовать HTML, с ним меньше шанс допустить ошибку. Вот тут документация от Telegram.
Код
#урок #aiogram
📌 Кнопки
Есть два вида кнопок:
• Обычные кнопки — появляются внизу в виде клавиатуры. Просто отправляют сообщение, выбранное пользователем, хотя могут также по нажатию запрашивать аккаунт, геолокацию или создать опрос.
• Инлайн-кнопки — появляются по сообщениями. Могут пересылать людей на определённый URL, отправлять сообщения с данными боту и т.д.
Код
#урок #aiogram
Есть два вида кнопок:
• Обычные кнопки — появляются внизу в виде клавиатуры. Просто отправляют сообщение, выбранное пользователем, хотя могут также по нажатию запрашивать аккаунт, геолокацию или создать опрос.
• Инлайн-кнопки — появляются по сообщениями. Могут пересылать людей на определённый URL, отправлять сообщения с данными боту и т.д.
Код
#урок #aiogram
📌 Фабрика колбэков
Передавать данные в Inline-кнопки как строки — не удобно. Данные тяжело считывается, код тяжело читается.
Для решения проблемы есть класс
Код
#урок #aiogram
Передавать данные в Inline-кнопки как строки — не удобно. Данные тяжело считывается, код тяжело читается.
Для решения проблемы есть класс
CallbackData
, с его помощью создаётся класс, который самостоятельно составляет строку и обрабатывает её. Программисту остаётся работать только с объектом. Код
#урок #aiogram
📌 Middleware
Это код, который выполняется перед тем как запустится обработчик. Так можно контролировать нагрузку, делать Antiflood или собирать статистику.
В то время как у
#урок #aiogram
Это код, который выполняется перед тем как запустится обработчик. Так можно контролировать нагрузку, делать Antiflood или собирать статистику.
В то время как у
aiogram 2.0
реализовано множество готовых обработчиков, aiogram 3.0
может похвастаться хорошей документацией.#урок #aiogram
📌 Finite State Machine
Конечный автомат — модель, которая говорит что у пользователя может быть определённое состояние, от которого зависит код. Между состояниями можно переключатся.
Если брать игры, то там у игрока есть состояния: бег, прыжок, приседание, ходьба. Если игрок сидит, то проигрывается соответствующая анимация, ходьба замедляется.
Мы же, в ботах, можем использовать состояния для считывания данных пользователя, управления большими меню, ведения нормальных диалогов.
Вообще, чтобы с этим всем не возиться, лучше использовать aiogram-dialog.
#урок #aiogram
Конечный автомат — модель, которая говорит что у пользователя может быть определённое состояние, от которого зависит код. Между состояниями можно переключатся.
Если брать игры, то там у игрока есть состояния: бег, прыжок, приседание, ходьба. Если игрок сидит, то проигрывается соответствующая анимация, ходьба замедляется.
Мы же, в ботах, можем использовать состояния для считывания данных пользователя, управления большими меню, ведения нормальных диалогов.
Вообще, чтобы с этим всем не возиться, лучше использовать aiogram-dialog.
#урок #aiogram
📌 Хранение данных пользователя: FSM
Хранить данные о пользователи мы можем или в базе данных (Redis, Mongo) или в памяти. Для тестовой системы или простого бота вполне хватит второго варианта, а вот в проде лучше использовать БД.
Зачем? Таким образом, если у вас будет несколько серверов с запущенным ботом, данные будут всегда актуальны. К тому же, при обновлении бота, состояния пользователей не сбросятся.
#урок #aiogram
Хранить данные о пользователи мы можем или в базе данных (Redis, Mongo) или в памяти. Для тестовой системы или простого бота вполне хватит второго варианта, а вот в проде лучше использовать БД.
Зачем? Таким образом, если у вас будет несколько серверов с запущенным ботом, данные будут всегда актуальны. К тому же, при обновлении бота, состояния пользователей не сбросятся.
#урок #aiogram