@remendado

Вопрос: aiogram: как обратиться к элементу from класса message?

aiogram 2.25.1

from aiogram import Bot, types
from aiogram.dispatcher import Dispatcher

@dp.message_handler()
async def word_input(message: types.Message):

    print(message)


Что на выходе:

{"message_id": 593, "from": {"id": 1111111, "is_bot": false, "first_name": "Dmitry", "last_name": "xxxxxxx, "username": "xxxxxxx", "language_code": "ru"}, "chat": {"id": 1111111, "first_name": "Dmitry", "last_name": "xxxxxxx", "username": "xxxxxxxxx", "type": "private"}, "date": 1685705155, "text": "текст"}


Тут какая-то засада, элемент "from" не описан в документации, а при попытке обратиться к нему питон выкидывает ошибку синтаксиса, ибо "from" - зарезервированное выражение.
print(message.from.id)
                           ^^^^
SyntaxError: invalid syntax

Обращение к элементу "chat" не вызывает проблем.

Чувствую, что я что-то упустил, но не пойму что именно.
  • Вопрос задан
  • 84 просмотра
Решения вопроса 1
SoreMix
@SoreMix
yellow
https://docs.aiogram.dev/en/latest/telegram/types/...

message.from_user.id / message.from_id

Это 100% было описано в каких-то доках, то ли телебот, то ли аиограм

upd: окей, это в телеботе было
upd

All types are defined in types.py. They are all completely in line with the Telegram API's definition of the types, except for the Message's from field, which is renamed to from_user (because from is a Python reserved token). Thus, attributes such as message_id can be accessed directly with message.message_id. Note that message.chat can be either an instance of User or GroupChat (see How can I distinguish a User and a GroupChat in message.chat?).
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы