Как вызвать пользователя по firstname в Telegram
пишу бота в Телеграме (на Python). Как сделать так, чтобы он мог вызывать участников беседы по имени? Допустим есть пользователь Телеграм с first_name:'Ivan', last_name:'Ivanov', username:'ivan345'. Чтобы обратиться к нему в чате, мне нужно написать его юзернейм @ivan345. Как обратится к пользователю по его имени чтобы first_name Ivan был гиперссылкой(без @ и username). Например message.from_user (id, username или firstname) возвращает как обычный String без гиперссылок на самого пользователя. Хочу, чтобы бот вызывал пользователей по их firstname.
Спасибо.
Ответы (3 шт):
Можно попробовать конкатенацию
tb.send_message(message.chat.id, ('Привет, '+message.from_user.first_name))
или так
tb.send_message(message.chat.id, f'Привет, {message.from_user.first_name}')
bot.send_message(message.chat.id, '{first}, {last} @{username}'.format(first=message.from_user.first_name,
last=message.from_user.last_name,
username=message.from_user.username))
Все написали ответы, не соответствующие условию.
Для этого надо сделать ссылку по ID пользователя. По ссылке можно попасть в профиль, только если пользователь состоит в этом чате.
Теперь к техническим деталям: Нужно сделать вот такую ссылку
<a href="tg://user?id=USER_ID">Любой текст</a>
Как сделать такую ссылку, чтобы текстом был first_name?
mention = f'<a href="tg://user?id={message.from_user.id}">{message.from_user.first_name}</a>'
Теперь мы можем вставить mention в наше сообщение, например:
bot.send_message(message.chat.id, f"Привет, {mention}!", parse_mode="HTML")
Если планируете использовать parse_mode="markdown", то код mention будет другим:
mention = f'[{message.from_user.first_name}](tg://user?id={message.from_user.id})'
Готово!