Для работы бота нужны:
- Зарегистрированный бот в Telegram. Бот должен иметь права на добавление в группы
(
/setjoingroups Enable), должен уметь обрабатывать любые сообщения от пользователей (/setprivacy Disable) - Развернутый экзеспляр ParsePaltform (https://parseplatform.org) или его облачную версию - для хранения данных
- (Опционально) Redis версии 6+ для кещирования данных (полезно, чтобы сократить количество запросов к parse и остаться на бесплатном тарифном плане)
- Приложению требуется доступ в интернет, но нет неодходимости делать его доступным из сети (бот получает данные через long polling).
не описывает всех ньюансов игры, но иллюстрирует, в зависимости
от каких событий как меняются состояния.
Необходимые для работы данные можно передать как параметрами при запуске, так и через переменные окружения:
- --botKey (или BOT_TELEGRAM_KEY) - Ключ, полученный при регистрации бота
- --dataAppUrl (или BOT_PARSESERVER_URL) - адрес сервера ParsePaltform, куда будут уходить запросы
- --dataAppKey (или BOT_PARSESERVER_APP_KEY) - ключ доступа к серверу
- --parseMasterKey (или BOT_PARSESERVER_MASTER_KEY) - требуется для некоторых облачных версий ParsePaltform
- --parseRestKey (или BOT_PARSESERVER_REST_KEY) - требуется для некоторых облачных версий ParsePaltform
- --adminUserIds (или BOT_ADMIN_USER_IDS) - список числовых ID telegram-пользовтелей, разделённых запятой. Указанные пользователи будут считаться администраторами и смогут аппрувить запросы на добавление новых наборов карт.
Доступы к Redis задаются только через переменную окружения REDISCLOUD_URL. Если переменная не установлена, приложение продолжит работать без Redis, но количество запросов к ParsePlatform увеличится.
Нельзя запустить несколько экземпляров бота с одним и тем же идентификатором botKey! Это приведёт к ошибке со стороны Telegram и падению приложения.
Запуск через Dart VM: dart --no-sound-null-safety run bin/server.dart [options]
Запуск и использованием Docker:
$ cd project-root-dir
$ docker build -t litgame .
$ docker run -i -t litgame [options]При запуске контейнера необходимо передать в него опции командной строки бота, например:
$ docker run -i -t litgame --botKey 123 --dataAppUrl https://example.com --dataAppKey 456
Docker-контейнер можно хостить на https://www.heroku.com. Для этого необходимо:
- Создать новое приложение Heroku
- Выполнить
heroku stack:set containerчерез Heroku CLI - (Опционально) Установить аддон Redis Cloud
- Настроить Deployment method из вашего репозитория