Учимся писать ботов: Webhook для бота. Часть 1.
t.me/PishemBotaВсем привет!
Сегодня пост про Webhook для бота, а точнее введение. :)
Что это и зачем?
Telegram Bot API и код ботов, которые мы делали раньше - опрашивает сервера Telegram на задачи для них, а Webhook дает возможность сделать наоборот - сервера Telegram сами будут давать задачи для бота, отправляя их на Webhook.
Это заметно ускоряет и стабилизирует работу бота.
С каким фреймворком мы будем работать?
Я решил, что фреймворк Flask - лучше всего подойдет для нас, ведь он прост в использовании и, в принципе, не уступает другим.
Для того, чтобы установить Flask - запустите командную строку от имени администратора (или как нужно для вашей ОС) и пропишите:
pip install Flask

Как интегрировать Flask в код?
Для примера я взял код первого бота:
import telebot
TOKEN = "<ваштокен>"
bot = telebot.TeleBot(TOKEN)
@bot.message_handler(commands=['start'])
def start(m):
bot.send_message(m.chat.id, 'Привет, человек!')
bot.polling()
Теперь нам нужно добавить в начало импорт Flask:
from flask import Flask import telebot
И после импортов добавляем такую переменную:
app = Flask(__name__)
Для того, чтобы потестировать работу Flask добавляем такую функцию:
@app.route('/')
def index():
return 'Webhook work - OK'
А также добавляем под конец это:
app.run
В итоге, когда мы заходим на адрес localhost:5000 (или какой выдаст flask) мы видим это:

А также мы получаем такой код:
import telebot
from flask import Flask
TOKEN = "<ваштокен>"
bot = telebot.TeleBot(TOKEN)
app = Flask(__name__)
@bot.message_handler(commands=['start'])
def start(m):
bot.send_message(m.chat.id, 'Привет, человек!')
@app.route('/')
def index():
return '<h1>Webhook work - OK<h1>'
app.run()
bot.polling()
Следующий пост - будет более полным и выйдет завтра.