我正在使用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()
3条答案
按热度按时间ny6fqffe1#
看看这是不是你要找的:
一旦用户点击
/start
命令,他/她的用户名将被发送到您选择的chat_id
。knpiaxh12#
你可以设置中间件来处理来自用户的新更新,并获取用户名throw ctx.from.username
r1zhe5dt3#
如上所述,Rafael是正确的。如果你在自己的函数中使用他的例子,像这样:
user = update.message.from_user
您会发现
user
将包含如下所述的属性:https://docs.python-telegram-bot.org/en/stable/telegram.user.html#telegram.User