Как сделать открытие сайта в тг боте

@bot.message_handler(commands=["site"])
def site(message):
    webbrowser.open("сайт")

нажимаю на команду на телефоне и другие люди ,но открывается сайт только на компе(хостинге). Как исправить мою ошибку?


Ответы (1 шт):

Автор решения: Ben Puls

Вариантов передать пользователю сайт всего 2.

Первый, используйте кнопку, в которую встроена ссылка с сайтом.

@bot.message_handler(commands=['site']) #создание команды
def site(message):
    markup = types.InlineKeyboardMarkup() # создаём кнопку
    button1 = types.InlineKeyboardButton("текст", url='ссылка') # добавляем текст кнопки и ссылку
    markup.add(button1) # добавляем кнопку
    bot.send_message(message.chat.id, "Текст с кнопкой", reply_markup=markup) # отправляем сообщение со встроенной кнопкой

Результат:

введите сюда описание изображения

введите сюда описание изображения

Второй вариант. Использование Telegram Web Apps. При помощи него вы создадите веб-приложение внутри телеграм. Документация.

Сперва перейдите в BotFather и напишите команды, чтобы зарегистировать Web-приложение.

  1. /setmenubutton

  2. Выбираем бота и отправляем ссылку, куда мы будем перенаправлять пользователя, также пишем название кнопки

Теперь пишем код, создавая веб-приложение.

@bot.message_handler(commands=['site']) #создание команды
def site(message):
        markup = types.InlineKeyboardMarkup()  # создаём кнопку
        web_info = types.WebAppInfo('https://ru.stackoverflow.com') # ссылка для приложения
        button1 = types.InlineKeyboardButton("Веб", web_app=web_info)  # добавляем текст кнопки и указываем переменную
        markup.add(button1)  # добавляем кнопку
        bot.send_message(message.chat.id, "Текст с кнопкой",
                         reply_markup=markup)  # отправляем сообщение со встроенной кнопкой

Результат:

введите сюда описание изображения введите сюда описание изображения

→ Ссылка