簡體   English   中英

如何在 Telegram Bot 中獲取用戶名?

[英]How to get the user's name in 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。

您正在使用的getMe()函數用於獲取有關機器人的信息。 但是您需要發送消息的人的名字。

消息 API中,有一個from屬性(在python中為from_user ),其中包含一個User對象,其中包含發送消息的人的詳細信息。

因此,使用name = message.from_user.first_name這樣的東西會給您帶來更多的運氣。

試試這個:

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

@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...")```
  

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM