Есть база данных зарегистрированных пользователей на сайте.
Каждый привязал к учётке бота телеграм.
То есть у меня есть имя пользователя, другие данные и chat_id с ботом.
Сейчас хочу реализовать mini app в телеграме, но сохранить учётки пользователей.
Mini App tg даёт возможность получить данные о пользователе (имя, id в телеграм и т.д.) который его запустил, но не даёт получить chat_id с ботом. Получается я не могу их сопоставить.
Как мне привязать пользователя который откроет mini app к пользователю который уже зарегистрирован? Без лишних манипуляций со стороны пользователей.
В рамках телеграм у каждого пользователя есть ID. Если вы его ранее сохраняли, как сохраняли chat_id, то связывайте по ID пользователя.
При запуске mini app, на фронте будет параметр "initData". Вам его нужно передать на бек и там провести валидацию, что бы убедиться, что объект не был подделан. Вот тут подробнее - ссылка.
Где id из message.from.id и из message.chat.id будут одинаковые, в моем примере: 1155310837 и это телеграмм id юзера.
Вы что в БД пишите? И что в Mini App получаете?
Да вы правы. Я проверял на одном пользователе, но заходил с разных аккаунтов в бота под одним логином и паролем. Поэтому chat_id из БД не совпадал с текущим.
Большое спасибо, теперь всё работает!