Как узнать, кто нажал на кнопку?
def Admin_Text (message):
try:
text = message.text
if text.lower() == "/start" or text.lower() == "start" or text.lower() == 'меню':
bot.send_message(message.from_user.id, "Пожалуйста не используйте команду Start!")
else:
key = telebot.types.InlineKeyboardMarkup()
key1 = telebot.types.InlineKeyboardButton(text="Взял", callback_data="Vzal")
key2 = telebot.types.InlineKeyboardButton(text="Отмена", callback_data="Otmena")
key.add(key1, key2)
bot.send_message(chat_id=, text="" + text + "\n\n" + "Логин отправителя: @" + str(message.from_user.username), reply_markup=key)
bot.send_message(message.from_user.id, "Сообщение было отправлено, ожидайте!")
logging.info("инициатор запроса - ID " + str(message.from_user.id) + "; " + "L - " + str(message.from_user.username))
except Exception as ex:
logging.error("Ошибка (Admin_Text): " + str(ex))
Это сообщение, которое отправляется в другой чат с кнопками, потом оно обрабатывается
@bot.callback_query_handler(func=lambda c:True)
def CallBack (c):
if c.data == "Vzal":
bot.edit_message_reply_markup(chat_id=c.message.chat.id, message_id=c.message.message_id, reply_markup=None)
Как узнать, кто нажал на кнопку (нужен ID человека или его Username)?
Ведь если я использую c.message.chat.username - мне возращает None.
Или в Callback_query_handler это не возможно сделать?
Ответы (1 шт):
Автор решения: anyM0re
→ Ссылка
Решение:
@bot.callback_query_handler(func=lambda c:True)
def CallBack (c):
if c.data == "Vzal":
UM = c.from_user.username
bot.reply_to(c.message, text = "Text" + str(UM))
bot.edit_message_reply_markup(chat_id=c.message.chat.id, message_id=c.message.message_id, reply_markup=None)
Username - чтобы получить UserName пользователя или ID - чтобы получить ID пользователя.