Можно ли отправить сообщение пользователю от имени бота, используя только username?
Суть в том, что бот должен отправлять сообщение пользователю, который его уже запустил и username которого я ему отправляю через телеграмм. Стандардный вариант с bot.send_message требует id пользователя. Можно ли вместо id использовать username?
Попробуй указать "@username", с каналами это работает, с пользователями работает ли мне проверять лень... Но вообще правильнее использовать user_id, так как его, в отличие от username, пользователь поменять не может.
Есть вариант вытащить id пользователя через его username, чтобы пользователю не приходилось указывать id при регистрации. Когда пользователь отправляет первое сообщение в бот, например команду "/start" в переменной message есть поля: message.from_user.username и message.from_user.id. Поиском по базе данных можно найти нужный username и соотнести его с айдишником.