Skip to content

Начало работы

В этом туториале мы запустим Hello world бота сразу на трех платформах. Мы пройдем все этапы от настройки и конфигурации до запуска и тестирования.

Пару слов о принципе работы библиотеки

Если вы знаете как работают боты, можете пропустить этот пункт.

Обычно платформы работают с ботами, используя два метода на выбор: Callback API и Long Poll API. Различия между этими методами заключаются в способах получения событий (например нового сообщения):

  • В первом случае вы создаете свой сервер, который принимает запросы от платформы, когда происходит событие (при этом платформа должна знать адрес вашего сервера)
  • Во втором - вы постоянно отправляете запросы на сервер платформы с определенной периодичностью, чтобы получить все события, произошедшие за интервал ожидания

Наш фреймворк использует первый метод, так как он является наиболее стабильным и применим на всех платформах, с короторыми мы работаем.

Фреймворк - сервер

Если вы работали с веб-разработкой на Python, то вы скорее всего слышали о таких фреймворках как Django и Flask. Наши боты будут работать на асинхронном фреймворке нового поколения Starlette.

Почему именно Starlette?

Этот фреймоврк сочетает в себе простоту Flask`a и высокую скорость работы благодаря ASGI. По версии бенчмарка TechEmpower является одним из самых быстрых на Python

Структура проекта

На данный момент для работы предлагается использовать папку template. В дальнейшем, когда библиотека будет добавлена в PyPi, будет реализован генератор шаблона. В проекте имеетются следующие файлы:

  • .conf - в нем будут хранится все конфигурационные данные (токены и адреса)
  • bot.py - основной файл с логикой вашего бота

Файл .conf

Файл конфигурации, содержащий токены и адреса. Далее будут описаны действия, чтобы получить значения для каждой перменной

VK_TOKEN - Токен ВК бота

  • Открыть/создать группу
  • Выбрать пункт Управление
  • Пройти на вкладку Работа с API
  • Нажать на кнопку Создать ключ
  • Выбрать все права в появившемся меню

VK_CONFIRMATION - Код для привязки сервера к Callback API VK

  • Открыть группу
  • Выбрать пункт Управление
  • Пройти на вкладку Работа с API
  • В меню сверху нажать на Callback API
  • Найти пункт Строка, которую должен вернуть сервер

TELEGRAM_TOKEN - Токен Telegram бота

  • Найти @BotFather
  • Создать своего бота

TELEGRAM_GROUP - ID группы, в которую будут отправляться файлы для предзагрузки. Подробнее об этом будет написано в пункте Подготовка и запуск

ALICE_TOKEN - Токен вашего навыка

  • Зайти в личный кабинет
  • Создать/выбрать навык
  • Найти пункт Идентификатор диалога

ALICE_AUTH - Защитный токен для загрузки

PUBLIC_URL - публичная ссылка вашего сервера. Подробнее в разделе про ngrok

PROXY_URL - Адрес прокси сервера для работы Telegram на территории РФ, можно найти в публичных списках бесплатных прокси

Опасно

Прокси сервера могут перехватывать трафик, если ваш бот обладает конфединциальной информацией, не используйте публичные прокси сервера

Внимание

Если на вашем серевере, не будет появляться сообщение о том, что hook установлен или будут вознимать ошибки из-за превышения времени ожидания, следует поменять прокси