img

Погружение в aiogram (#3 types.Message)

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

Ты спросишь меня: “Зачем он нам так нужен?” 

Работая с обработчиками сообщений (message_handler()), в обязательном порядке должен быть передан аргумент в функцию, типом types.Message. Он позволяет очень удобно манипулировать данными пользователя и, в целом, всем функционалом бота.  

Где использовать?

 

(Note для работы используй заготовку с GitHub)

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

 

Передаем аргумент в функцию и указываем аннотацию типов (вообще, делать это не обязательно, но оно дает нам колоссальные удобства при дальнейшей работе с данным аргументом).

 

При обращении к аргументу, благодаря аннотации типов, видим сколько методов и атрибутов он хранит внутри себя.

Проделай это у себя и посмотри, как много методов и атрибутов можно вызвать!

 

Так же не обязательно называть переданный аргумент message, ты можешь дать ему абсолютно любое имя, НО для удобства лучше придумывать названия аргументам, вкладывая смысл их предназначения. В соответствии с дзеном Python.

Пользовательские данные

 

Ну что же, настало время посмотреть, какие данные хранит в себе данный аргумент.

Делаем простенький хэндлер, как в прошлой статье про эхо бота, но вместо отправки сообщения нам обратно, выведем аргумент в терминал с помощью функции print().

Вот что должно получится:

 

Запускаем нашего бота, и пишем ему любое сообщение!

 

В ответ видим ничего, НО не пугайсятесь, так и должно быть!

Заходим в любимое IDE и смотрим,  что отобразилось у нас в консолие.

 

Видим очень длинное текстовое поле, напоминающее словарь, НО это не он, не надо путать!

Данный аргумент представляет из себя класс

 <class 'aiogram.types.message.Message'>

Мы видим некоторую вложенность данных, но обо всём по порядку.

 

Значение атрибутов

 

  • message_id - уникальный идентификатор сообщения в этом чате
  • from_user.id - уникальный идентификатор пользователя
  • from_user.is_bot - булевое значение, указывающее, является ли пользователь ботом
  • from_user.first_name - имя пользователя
  • from_user.last_name - фамилия пользователя
  • from_user.username - имя пользователя (username) без «@» (может быть None)
  • from_user.language_code - код языка, на котором пользователь взаимодействует с ботом
  • chat.id - идентификатор чата
  • chat.first_name - имя пользователя чата
  • chat.last_name - фамилия пользователя чата
  • chat.username - имя пользователя (username) без «@» (может быть None) чата
  • chat.type - определяет тип чата (приватный/публичный)
  • date  -  дата отправки сообщения по времени Unix
  • text  -  фактический текст сообщения в формате

 

Для использования этих значений в своём проекте, необходимо к ним обратиться.

Делается это очень просто, вот пару примеров:

message.from_user.id

message.from_user.username

message.text

message.chat.type

 

Пишем боту любое сообщение и в терминале получаем следующий вывод. 

 

Заключение

 

Здесь мы слегка коснулись самую малость возможностей класса types.Message. В следующих же статьях будем изучать всё более интересные возможности работы бота и расширение его функционала.

Ссылка
скопирована
Получите бесплатные уроки на наших курсах
Все курсы
Программирование
Скидка 25%
Python-программист с нуля
Стань разработчиком на одном из самых популярных языков программирования.
Получи бесплатный
вводный урок!
Пожалуйста, укажите корректный e-mail
отправили вводный урок на твой e-mail!
Получи все материалы в telegram и ускорь обучение!
img
Еще по теме:
img
В этой статье обсудим один из важнейших аргументов функции, который ТЫ, мой друг, будешь использовать в каждом своем боте.  Ты с
img
Введение    Настало время глубже погрузиться во взаимодействие человека с ботом. Сегодня изучим декоратор message_handler(). Узн
img
Погружение в aiogram (#5 Отправка стикеров)   Введение   Продолжаем изучать функционал библиотеки aiogram для работы с Telegram
img
Гипервизор - это программное обеспечение для виртуализации, используемое для создания и запуска виртуальных машин (ВМ). Гипервиз
img
Виртуализация серверов позволяет запускать несколько виртуальных машин на одном физическом сервере. Запуск виртуальных машин (ВМ
img
Сегодня мы рассмотрим, как настроить и использовать PHP в проекте. Но прежде чем начать, нужно понять, что такое PHP. Что такое
ОСЕННИЕ СКИДКИ
40%
50%
60%
До конца акции: 30 дней 24 : 59 : 59