@szjyakgf

Можно ли получить значение callback_data при реплае?

Можно ли достать user_id из команды test в text?
@dp.message_handler(commands=['test'])
async def test(message: types.Message):
    user_id = message.from_user.id
    keyboard = types.InlineKeyboardMarkup()
    callback_button = types.InlineKeyboardButton(text="test button", callback_data=f"{user_id}")
    keyboard.add(callback_button)
    await message.answer('test message', reply_markup=keyboard)
@dp.message_handler(content_types=['text'])
async def text(message: types.Message):
    user_id = message.from_user.id
    if not not message.reply_to_message:
        #сюда нужна проверка user_id отсюда и user_id из команды test который находится в callback_data
        await bot.edit_message_text(chat_id=message.chat.id, message_id=message.reply_to_message.message_id, text='Good')
  • Вопрос задан
  • 108 просмотров
Пригласить эксперта
Ответы на вопрос 2
ma4akk
@ma4akk
Мб так
@dp.message_handler(commands=['test'])
async def test(message: types.Message):
    user_id = message.from_user.id
    keyboard = types.InlineKeyboardMarkup()
    callback_button = types.InlineKeyboardButton(text="test button", callback_data=f"{user_id}")
    keyboard.add(callback_button)
    await message.answer('test message', reply_markup=keyboard)

@dp.message_handler(content_types=['text'])
async def text(message: types.Message):
    if message.reply_to_message:
        # Получаем данные из callback_data
        callback_data = message.reply_to_message.callback_data
        # Сравниваем user_id из сообщения и user_id из callback_data
        if message.from_user.id == callback_data:
            await bot.edit_message_text(chat_id=message.chat.id, message_id=message.reply_to_message.message_id, text='Good')
Ответ написан
shurshur
@shurshur
Сисадмин, просто сисадмин...
По-моему, тут типичная попытка решить простую задачу дурацким способом.

Пользователь получает сообшение с inline-кнопкой. Вот пусть он эту кнопку и нажмёт, а бот получит в callback_query_handler событие с callback_data и обработает. Зачем ещё какое-то цитирование?

Или тут попытка в кнопке хранить данные, которые при цитировании ещё и якобы можно будет достать? Сама идея дурацкая. Если надо к сообщениям хранить какие-то данные, то их надо хранить в самом боте: в базе данных, в хранилище FSM, да хотя бы in memory в переменных.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы