如何在Telegram Bot中获取用户名?

时间:2018-05-25 03:21:06

标签: python python-3.x telegram telegram-bot python-telegram-bot

我正在使用处理程序在Telegram bot中工作。我需要在使用命令后获取用户名或用户ID。

我的代码

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()

但是,我只获得有关机器人的信息。我无法检索有关使用处理程序的用户的信息。

输出

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

如何获取使用info命令的用户ID或用户名? 我将使用哪种方法?请指教。

注意:

我的机器人与Telegram组相关联。出于安全原因,我已经从我的MVC中删除了Telegram TOKEN。

1 个答案:

答案 0 :(得分:4)

您正在使用的getMe()功能用于获取有关机器人的信息。但是你想要发送信息的人的名字。

message API中,from属性(python中为from_user)包含一个User对象,其中包含发送该对象的人员的详细信息消息。

所以你会有更多运气,比如name = message.from_user.first_name