Задать вопрос
  • Как сделать так, чтобы когда участник возвращался на главную страницу, ему писало не first_name чат бота, а first_name пользователя?

    @GreenAleex
    Попробуй должно помочь!

    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)
    Ответ написан