Погружение в aiogram (#5 Отправка стикеров)
Введение
Продолжаем изучать функционал библиотеки aiogram для работы с Telegram ботом. И сейчас в этой статье мы узнаем, как бот может отправлять стикеры пользователю, с ним взаимодействующим.
Note: Не забываем, что работаем с версией Python 3.9 и с версией библиотеки aiogram = 2.25.1
Шаблон проекта можешь скачать с GitHub по ссылке ? жми сюда (НЕ ЗАБУДЬ УКАЗАТЬ ТОКЕН СВОЕГО БОТА!)
Отправка стикеров
Для отправки любого вида контента, необходимо использовать объект класса Bot().
Что вообще представляет из себя стикер в Telegram?
Стикеры - это последовательность символов (будем называть её кодом), которые Telegram преобразует в картинку стикера.
У каждого стикера эта последовательность индивидуальна, и как раз-таки она нам нужна для отправки их пользователю с помощью бота.
Последовательность символов выглядит так: CAACAgIAAxkBAAEM1H9m6zpk9-ylY6RxukmDLw3B9DzwZAACEgADA9OlHucXXe19Ah4mNgQ
Встаёт главный вопрос, где мы можем получить этот код?
Но и здесь всё просто, для этого специально был разработан бот Get Sticker ID.
Для получения кода необходимо в диалог боту отправить стикер, код которого мы хотим узнать.
Но мы можем и сами узнать код стикера!
Для этого необходимо написать следующий хендлер.
Параметр content_types необходим, чтобы явно указать, какой тип контента мы ожидаем получить.
Запустим скрипт с этим хендлером и посмотрим, что отправит нам наш бот.
При отправке стикеров мы исправно получаем его код. А сейчас увидим, для чего же он нам так нужен.
Напишем хендлер, который будет обрабатываться при получении команды /sticker и отправлять стикер пользователю.
Для отправки стикера воспользуемся методом: await bot.send_sticker().
В параметрах к методу указываем id пользователя, который получит данный стикер (message.from_user.id), в нашем случае это тот, кто и отправил команду /sticker и код стикера.
Проверяем работу скрипта
Получается всё так, как мы и хотели!
Чтобы не засорять диалог с ботом, при написании команды можно в скрипт добавить метод:
await message.delete()
Данный метод удаляет последнее отправленное сообщение боту.
Теперь при отправке команды /sticker бот будет удалять её и отправлять нам стикер.
Попробуй работу скрипта в деле! (НЕ ЗАБУДЬ УКАЗАТЬ ТОКЕН СВОЕГО БОТА)
Заключение
Сегодня мы узнали, как отправлять стикеры, познакомились с новым для себя ботом и смогли реализовать его функционал самостоятельно. Узнали метод для удаления отправленных пользователем сообщений. В следующей статье изучим, как отправлять фото, видео, аудио и документы с помощью бота.