Mac OS
python 3.10.6
pytelegrambotapi
когда оператор отвечает на вопрос, почему то сообщение не отправляется пользователю, а пишет: В настоящее время вы не отвечаете на запрос.
пытался спрашивать chat gpt, но он не помог, надеюсь вы разберётесь
Видео проблемы - https://disk.yandex.ru/i/O6eQwegJTbtjkA
python 3.10.6
pytelegrambotapi
Python:
import telebot
import webbrowser
bot = telebot.TeleBot('TOKEN')
user_queries = {}
@bot.message_handler(commands=['contacts'])
def contacts(message):
webbrowser.open('https://hemophilia.ru')
@bot.message_handler(commands=["start"])
def start(message):
mess = f'Здравствуйте, <b>{message.from_user.first_name}</b>!'
bot.send_message(message.chat.id, mess, parse_mode='HTML')
@bot.message_handler(commands=["help"])
def start(message):
mess = f'Здравствуйте, <b>{message.from_user.first_name}</b>!'
bot.send_message(message.chat.id, mess, parse_mode='HTML')
@bot.message_handler(commands=['hotline'])
def request_support(message):
user_id = message.chat.id
bot.send_message(user_id, "Напишите вашу проблему:")
user_queries[user_id] = {"original_user_id": user_id, "query": ""}
@bot.message_handler(func=lambda message: message.text and message.chat.id in user_queries)
def user_message(message):
user_id = message.chat.id
if user_id in user_queries:
user_queries[user_id]["query"] += message.text + "\n"
bot.send_message(user_id, "Благодарим Вас за сообщение. Оператор поможет Вам.")
notify_support(user_id)
else:
bot.send_message(user_id, "Для взаимодействия с ботом используйте команды /start.")
def notify_support(user_id):
support_chat_id = "CHAT ID" # Replace with the actual support chat ID
query = user_queries[user_id]["query"]
bot.send_message(support_chat_id, f"Новое обращение от {user_id}:\n\n{query}")
bot.send_message(user_id, "Ваше обращение направлено оператору")
# Command to respond to a user's query (for support agents)
@bot.message_handler(commands=['respond'])
def respond(message):
user_id = message.chat.id
markup = telebot.types.ForceReply(selective=False)
bot.send_message(user_id, "Напишите ответ:", reply_markup=markup)
bot.register_next_step_handler(message, support_response)
# Handler for support agent responses
def support_response(message):
user_id = message.chat.id
if user_id in user_queries:
responding_to = user_id
user_id = responding_to
query_user_id = user_id
user_id = user_queries[query_user_id]["original_user_id"]
bot.send_message(user_id, "Ответ поддержки:\n" + message.text)
markup = telebot.types.ReplyKeyboardMarkup(resize_keyboard=True)
markup.add(telebot.types.KeyboardButton("/resolve"), telebot.types.KeyboardButton("/escalate"))
bot.send_message(user_id, "Ваш вопрос решен? Вы можете набрать /resolve или /escalate.", reply_markup=markup)
else:
bot.send_message(user_id, "В настоящее время вы не отвечаете на запрос.")
@bot.message_handler(commands=['resolve'])
def resolve(message):
user_id = message.chat.id
bot.send_message(user_id, "Ваш вопрос был отмечен как решенный. Если у вас есть дополнительные вопросы, не стесняйтесь их задавать.")
@bot.message_handler(commands=['escalate'])
def escalate(message):
user_id = message.chat.id
bot.send_message(user_id, "Ваш вопрос был передан на более высокий уровень поддержки.")
if __name__ == '__main__':
try:
print('Start...')
bot.polling(none_stop=True)
except KeyboardInterrupt:
print('Stop')
когда оператор отвечает на вопрос, почему то сообщение не отправляется пользователю, а пишет: В настоящее время вы не отвечаете на запрос.
пытался спрашивать chat gpt, но он не помог, надеюсь вы разберётесь
Видео проблемы - https://disk.yandex.ru/i/O6eQwegJTbtjkA