简体   繁体   中英

How to get the user's name in Telegram Bot?

I'm working in Telegram bot with a handler. where I need to get the user's name or users id once they use the command.

MY CODE

import telebot  #Telegram Bot API

bot = telebot.TeleBot(<BotToken>)

@bot.message_handler(commands=['info'])
def send_welcome(message):
        name = bot.get_me()
        print(name)
        bot.reply_to(message, "Welcome")

bot.polling()

However, I get only info about the bot. I can't retrieve info about the user who used handler.

OUTPUT

{'first_name': 'SPIOTSYSTEMS', 'id': 581614234, 'username': 'spiotsystems_bot', 'is_bot': True, 'last_name': None, 'language_code': None}

How do I get the user id or name of the person who uses info command? which method i shall use? please advise.

NOTE:

My bot is linked with the Telegram group. and I've removed the Telegram TOKEN from my MVC for security reasons.

The getMe() function you are using is for getting information about the bot. But you want the name of the person who sent the message.

In the message API, there is a from attribute ( from_user in python) which contains a User object, which contains the details of the person who sent the message.

So you'll have more luck with something like name = message.from_user.first_name .

try this:

message.from_user.id
message.from_user.first_name
message.from_user.last_name
message.from_user.username

or read this https://core.telegram.org/bots/api#user

@bot.message_handler(commands=['Start'])
def greet(message):
  user_first_name = str(message.chat.first_name) 
  bot.reply_to(message, f"Hey! {user_first_name} \n Welcome To The...")```
  

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM