Как мне получить имя пользователя пользователя Telegram в основной функции бота Python Telegram?

#python #telegram #telegram-bot #python-telegram-bot

#python #telegram #telegram-бот #python-telegram-bot

Вопрос:

Я программирую бота Telegram на python, используя библиотеку 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()
 

Комментарии:

1. Не могли бы вы поделиться своим текущим кодом?

Ответ №1:

Посмотрите, это ли то, что вы ищете:

 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 ваш выбор.

Комментарии:

1. Не совсем, потому что с помощью этого кода я получаю имя пользователя в функции запуска, и я хотел сделать это в основной функции

Ответ №2:

Вы можете установить промежуточное программное обеспечение, которое обрабатывает новое обновление от пользователя и получает username throw ctx.from.username