@NewSantaClaus

From или chat? Где хранятся данные о пользователе telegram api?

Когда пользователь нажимает /start то приходят данные. В этих данных есть поля from и chat. Они похожи. Так с какого же поля брать данные о пользователе чтобы их сохранить в базе?
  • Вопрос задан
  • 44 просмотра
Пригласить эксперта
Ответы на вопрос 2
shurshur
@shurshur
Сисадмин, просто сисадмин...
В текущей реализации Bot API в привате с ботом from.id всегда равно chat.id. Но это не распространяется на всякие групповые чаты.

Я всегда рекомендую исходить из того, с чем мы имеем дело. Если нужно указать chat_id при отправке сообщения, то нам нужен именно чат, а не пользователь, и следует брать chat.id. Если мы хотим сохранить информацию о пользователе, то правильнее брать from.id. Это, в том числе, повысит шансы на корректную работу бота без доработок в том случае, если Telegram вдруг когда-нибудь откажется от идентичности chat.id и from.id в привате с ботом.
Ответ написан
Комментировать
vabka
@vabka
Токсичный шарпист
Смотря что тебе надо сохранить.
Если только отправителя - from
Если чат, в котором сообщение было отправлено
- chat.

Если тебе важен контекст (например если бот добавлен в группу и он должен различать одного и того же отправителя в личке и в группе) - сохраняй оба.
Ответ написан
Комментировать
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы