如何在python Telegram bot的主函数中获取Telegram用户的用户名?

lsmd5eda  于 2023-04-04  发布在  Python
关注(0)|答案(3)|浏览(128)

我正在使用python-telegram-bot库在python中编程Telegram bot,但我遇到了一个问题:我需要获取用户的用户名(抱歉使用双关语),但我不知道如何在主函数中执行此操作。我已经在互联网上搜索过,每个人都在一个函数中获取用户名,使用update.message.from_user.username。但我需要在主函数中执行此操作,因为我想将此用户名和一些文本发送给另一个Telegram用户。您能帮助我吗?
我目前的代码是:

import telegram
import logging
from telegram.ext import CommandHandler, CallbackQueryHandler, Updater
from functions import start, button

bot = telegram.Bot(token='')
updater = Updater(token='')
dispatcher = updater.dispatcher
logging.basicConfig(format='%(asctime)s - %(name)s'
                    ' - %(levelname)s - %(message)s', level=logging.INFO)
start_handler = CommandHandler('start', start)
dispatcher.add_handler(start_handler)
updater.dispatcher.add_handler(CallbackQueryHandler(button))
updater.start_polling()
updater.idle()
updater.stop()
ny6fqffe

ny6fqffe1#

看看这是不是你要找的:

def start (update, context):

    #this will retrieve the user's username, as you already know
    user = update.message.from_user

    #this will send the information to some Telegram user
    context.bot.send_message(chat_id = some_user_chat_id,
                             text = f'User {user} just hit start command!')

一旦用户点击/start命令,他/她的用户名将被发送到您选择的chat_id

knpiaxh1

knpiaxh12#

你可以设置中间件来处理来自用户的新更新,并获取用户名throw ctx.from.username

r1zhe5dt

r1zhe5dt3#

如上所述,Rafael是正确的。如果你在自己的函数中使用他的例子,像这样:
user = update.message.from_user
您会发现user将包含如下所述的属性:https://docs.python-telegram-bot.org/en/stable/telegram.user.html#telegram.User

相关问题