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

Учимся писать ботов: 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()

Следующий пост - будет более полным и выйдет завтра.

Report Page