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

新手上路,请多包涵

我正在使用处理程序在 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 许可协议

阅读 4.1k
2 个回答

您正在使用的 getMe() 函数用于获取有关机器人的信息。但是您想要发送消息的人的姓名。

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

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

原文由 Shadow 发布,翻译遵循 CC BY-SA 4.0 许可协议

尝试这个:

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

或阅读此 https://core.telegram.org/bots/api#user

原文由 Michael K 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题