Попробуй должно помочь!
import telebot
from telebot import types
bot = telebot.TeleBot('твой токен')
SUPPORT_CHAT_ID = -4589411721
user_support_map = {}
@bot.message_handler(commands=["start"])
def main(message):
markup_one = types.InlineKeyboardMarkup()
btn_one = types.InlineKeyboardButton("Зв'язок з службою підтримки", callback_data='new_site')
markup_one.row(btn_one)
btn = types.InlineKeyboardButton("Відновити пароль до акаунта", url='https://www.youtube.com/')
markup_one.row(btn)
btn_two = types.InlineKeyboardButton("Сайт", url='https://www.youtube.com/')
btn_three = types.InlineKeyboardButton("Форум", url='https://www.youtube.com/')
btn_four = types.InlineKeyboardButton("Магазин", url='https://www.youtube.com/')
markup_one.row(btn_two, btn_three, btn_four)
file = open('image/5926747860378960618_120.jpg', 'rb')
bot.send_photo(message.chat.id, file,
caption=f'Вітаю, {message.from_user.first_name}!\n\n Я — твій віртуальний помічник у світі UKRAINE '
f'GTA.\n\n Для початку, обери бажану дію:', reply_markup=markup_one)
@bot.callback_query_handler(func=lambda callback: True)
def callback_message(callback):
if callback.data == 'new_site':
bot.delete_message(callback.message.chat.id, callback.message.message_id)
markup_one = types.InlineKeyboardMarkup()
btn_one = types.InlineKeyboardButton("Підключити оператора", callback_data='contact_support')
markup_one.row(btn_one)
btn_two = types.InlineKeyboardButton("◀️Назад", callback_data='go_back')
markup_one.row(btn_two)
file = open('image/5926747860378960618_120.jpg', 'rb')
user_first_name = callback.from_user.first_name if callback.from_user.first_name else "Користувач"
bot.send_photo(callback.message.chat.id, file,
caption=f"Вітаю, {user_first_name}!\n\n Якщо у вас виникли питання або проблема яка пов'язана з нашим "
f"проектом, ви завжди можете звернутись до нашої служби підтримки.\n\nГрафік роботи:\nз "
f"12:00 до 23:00\n\nДля зв'язку з агентом підтримки натисніть кнопку:\n'Підключити "
f"оператора'.", reply_markup=markup_one)
elif callback.data == 'contact_support':
bot.send_message(callback.message.chat.id, "Ви підключені до оператора. Напишіть ваше запитання.")
user_support_map[callback.message.chat.id] = (callback.from_user.username, None)
bot.send_message(SUPPORT_CHAT_ID, f"Користувач @{callback.from_user.username} подав запит до техпідтримки.")
elif callback.data == 'go_back':
bot.delete_message(callback.message.chat.id, callback.message.message_id)
main(callback.message)
@bot.message_handler(func=lambda message: message.chat.id in user_support_map)
def forward_user_message(message):
sent_message = bot.send_message(SUPPORT_CHAT_ID, f"Запитання від @{message.from_user.username}:\n{message.text}")
user_support_map[message.chat.id] = (message.from_user.username, sent_message.message_id)
@bot.message_handler(func=lambda message: message.chat.id == SUPPORT_CHAT_ID and message.reply_to_message)
def handle_support_response(message):
original_message_id = message.reply_to_message.message_id
user_chat_id = None
for chat_id, (username, msg_id) in user_support_map.items():
if msg_id == original_message_id:
user_chat_id = chat_id
break
if user_chat_id:
if message.text.lower() == "/end":
del user_support_map[user_chat_id]
main(bot.send_message(user_chat_id, "Дякуємо за звернення до тех.підтримки!"))
else:
bot.send_message(user_chat_id, f"{message.text}")
else:
bot.send_message(message.chat.id, "Помилка: не вдалося знайти користувача.")
bot.polling(non_stop=True)