Mail.ruПочтаМой МирОдноклассникиВКонтактеИгрыЗнакомстваНовостиКалендарьОблакоЗаметкиВсе проекты

Бот не отправляет коментарий для ответа на вопрос telebot python

help please Ученик (80), на голосовании 2 месяца назад
Должен отправляться коментарий после нажатия кнопки ответить но его нет

def problem(message):
bot.send_message(message.chat.id, "Подробно опишите проблему:")
bot.register_next_step_handler(message, help_bot)
@bot.message_handler(content_types=['video', 'text', 'photo'])

def help_bot(message):
if not "/" in message.text:
# Регистрация запроса и добавление в очередь
requests_queue.append((message.message_id, message.chat.id))
# Пересылка сообщения в чат техподдержки
bot.forward_message(TO_CHAT_ID, message.chat.id, message.message_id)
# Создание инлайн-клавиатуры
markup_inline = types.InlineKeyboardMarkup()
markup_inline.add(types.InlineKeyboardButton(text='Ответить', callback_data=f'answer{message.chat.id}'))
# Отправка сообщения с инлайн-клавиатурой
bot.send_message(TO_CHAT_ID, "Действие:", reply_markup=markup_inline)

# Функция для обработки команды /requests
@bot.message_handler(commands=['requests'])
def all_messages(message):
if int(message.chat.id) == int(TO_CHAT_ID):
bot.send_message(message.chat.id, "Доступные запросы:")
for req in requests_queue:
bot.forward_message(TO_CHAT_ID, req[1], req[0])
markup_inline = types.InlineKeyboardMarkup()
markup_inline.add(types.InlineKeyboardButton(text='Ответить', callback_data=f'answer{req[1]}'))
bot.send_message(message.chat.id, "Действие:", reply_markup=markup_inline)

# Функция для отправки ответа пользователю
def send_answer(answer_text, chat_id):
try:
bot.send_message(chat_id, answer_text)
bot.send_message(TO_CHAT_ID, "Ответ отправлен!")
# Удаление запроса из очереди
global requests_queue
requests_queue = [req for req in requests_queue if int(req[1]) != int(chat_id)]
except Exception as e:
print(f"Ошибка при отправке ответа: {e}")

# Обработчик колбэк-кнопок
@bot.callback_query_handler(func=lambda call: call.data.startswith('answer'))
def answer_callback(call):
chat_id = int(call.data[len('answer'):])
# Запрос текста для ответа
msg = bot.send_message(TO_CHAT_ID, "Отправьте ответ на запрос")
# Ожидание ответа от оператора техподдержки
bot.register_next_step_handler(msg, lambda msg: send_answer(msg.text, chat_id))
Голосование за лучший ответ
damn Просветленный (47228) 3 месяца назад
Ты же вроде не используешь reply_to_message_id при отправке ответа пользователю.
Нужно чтоб функция send_answer принимала original_message_id в качестве аргумента, потом в answer_callback мы находим original_message_id из очереди запросов и передаем его в send_answer.
А дальше в send_answer нужно использовать reply_to_message_id=original_message_id при отправке ответа пользователю, чтобы комментарий был привязан к нужному сообщению.
Похожие вопросы