Учимся писать ботов: Webhook для бота. Часть 2.

Учимся писать ботов: Webhook для бота. Часть 2.

t.me/PishemBota

Всем привет!

Сегодня пост про Webhook для бота.

Код нужный для установки Webhook

Всё что нам нужно - это вот этот код:

from flask import Flask, request #этим заменяем импорт фласка

bot.set_webhook(url="https://<url>/<токен>")#добавляем до всех функций

@app.route('/<токен>', methods=["POST"]) #отд. функция
def webhook():
    bot.process_new_updates([telebot.types.Update.de_json(
        request.stream.read().decode("utf-8"))])

    return "ok", 200

И убранный bot.polling() в конце.


<url> заменяем на юрл сервера, <токен> заменяем на ваш токен (или другое название, если хотите так)

P.S. Для работы вебхука нужен протокол https на сервере.

Как установить вебхук на локальный сервер?

Для этого есть невероятно много вариантов. Однако мы будем использовать https://ngrok.com/.

Надо скачать его, запустить и вписать туда такую команду <если у вас не flask - меняйте порт 5000 на нужный>

ngrok.exe http 5000


После этого мы видим два юрла, копируем тот, который с протоколом https и вставляем его предыдущий код вместо <url>:

Если всё нормально, то скрипт с ботом будет выдавать такие строчки:

Итоговый код на Github

Скачать исходники можно по адресу: https://github.com/PishemBota/webhook_demo


В следующем посте мы рассмотрим деплой бота с Webhook на Heroku или другой бесплатный хостинг.

Report Page