我正在使用处理程序在 Telegram 机器人中工作。一旦他们使用命令,我需要在其中获取用户名或用户 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 或姓名?我应该使用哪种方法?请指教。
笔记:
我的机器人与电报组相关联。出于安全原因,我已经从我的 MVC 中删除了 Telegram TOKEN。
原文由 Sundararajan 发布,翻译遵循 CC BY-SA 4.0 许可协议
您正在使用的
getMe()
函数用于获取有关机器人的信息。但是您想要发送消息的人的姓名。在 消息 API 中,有一个
from
属性(python 中的from_user
)包含一个 User 对象,其中包含发送消息的人的详细信息。所以你会有更多的运气,比如
name = message.from_user.first_name
。