@chochocho

Как сделать webhook в телеграм боте и поставить его на хостинг?

Использую библиотеку Telebot. Пришло время ставить бота на хост (Хочу использовать Pythonanywhere). Сейчас бот работает на bot.polling(), хочу перекинуть его на Webhook, но посмотрев документацию ничего не понял, как именно это сделать.
Подскажите, как сделать webhook и как его закинуть на хостинг?
  • Вопрос задан
  • 80 просмотров
Решения вопроса 1
SoreMix
@SoreMix Куратор тега Python
yellow
В секрет свою какую нибудь строку, чтобы кто не надо не тыкал лишний раз.
Сначала надо удалить хук, вдруг уже есть, затем заново привязать. username - имя на pythonanywhere
Потом вешаем хук.
secret = '43d2yIyIVM'
username = 'user'

bot.remove_webhook()
time.sleep(1)
bot.set_webhook(url='https://{}.pythonanywhere.com/{}'.format(username, secret))

app = Flask(__name__)


Потом вешается обработчик фласка, на него приходят апдейты и передаются в telebot
@app.route('/{}'.format(secret), methods=["POST"])
def webhook():
    bot.process_new_updates([telebot.types.Update.de_json(request.stream.read().decode("utf-8"))])
    return 'ok', 200


Остальное - то же самое, разве что bot.pollin() естественно нет
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы
Ovision Санкт-Петербург
от 100 000 до 300 000 ₽
Сбер Санкт-Петербург
от 100 000 до 100 000 ₽