Ответ 1
В соответствии с официальной документацией пользователя можно указать по числовому идентификатору с разметкой:
[inline mention of a user](tg://user?id=123456789)
Я создаю бот телеграммы и использую метод sendMessage
для отправки сообщений.
легко упомянуть пользователя, использующего @username
, но как упомянуть пользователя, когда у него нет имени пользователя?
При использовании приложения/веб-телеграммы мы можем упомянуть пользователя @integer_id (name)
, а приложение telegram app/web преобразует его в текст с текстом. integer_id
будет сгенерирован автоматически, когда мы выберем пользователя после ввода @
.
другой фон:
Я пытаюсь использовать forceReply
, и я хочу настроить таргетинг пользователя, если у них есть имя пользователя, я могу легко настроить их, указав их на текст по методу sendMessage
.
бот, который я создаю, является "викториной", как бот. где каждый игрок должен повернуть, и бот отправляет им вопрос, каждый из сообщений бота будет нацелен на другого игрока.
ПРИМЕЧАНИЕ. Я не отключу Privacy Mode
, я не хочу, чтобы телеграмма бомбардировала мой сервер с помощью msg, который мне не нужен. это перегрузило мой дешевый неприятный сервер. поэтому отключить его не вариант.
Я открыт для другого решения, где бот может прослушивать выбранного игрока.
спасибо.
ОБНОВЛЕНИЕ 21/10: Я говорил с BotSupport для телеграммы, сказали они, на данный момент Боты не могут упоминать пользователя без имени пользователя.
поэтому в моем случае я все еще использую forceReply
, а также предоставил короткий запрос пользователю, у которого нет имени пользователя для его настройки, поэтому они могут получить выгоду от функции forceReply
.
В соответствии с официальной документацией пользователя можно указать по числовому идентификатору с разметкой:
[inline mention of a user](tg://user?id=123456789)
Боты могут отмечать пользователей по их идентификатору, они просто не могут этого сделать, используя официальный HTTP-API-браузер.
Обновление: больше не требуется, поскольку Telegram добавила встроенную поддержку для этого.
Если вы входите в свою учетную запись ботов с MadelineProto (PHP), вы можете использовать эту ссылку, чтобы упомянуть кого-то по этому идентификатору с параметром parse_mode для уценки
[Daniil Gentili](mention:@danogentili)
Попробуй это:
@bot.message_handler(func=lambda message: True)
def echo_message(message):
cid = message.chat.id
message_text = message.text
user_id = message.from_user.id
user_name = message.from_user.first_name
mention = "["+user_name+"](tg://user?id="+str(user_id)+")"
if message_text.lower() == "hi":
bot.send_message(cid,"Hi, " + mention,parse_mode="Markdown")
По этой ссылке : можно упомянуть пользователя по числовому идентификатору с разметкой:
Markdown style
Чтобы использовать этот режим, передайте Markdown в поле
parse_mode
при использованииsendMessage
. Используйте следующий синтаксис в вашем сообщении:
[inline mention of a user](tg://user?id=123456789)
и вы также можете использовать стиль HTML
:
HTML style
Чтобы использовать этот режим, передайте HTML в поле parse_mode при использовании sendMessage. В настоящее время поддерживаются следующие теги:
<a href="tg://user?id=123456789">inline mention of a user</a>