Установка Artix:TgBot
Перед установкой Artix:TgBot необходимо добавить репозиторий Artix Loyalty Managment с помощью команд:
echo 'deb [arch=amd64] http://update.artix.su/lm/ loyalty_testing loyalty' | sudo tee /etc/apt/sources.list.d/loyalty.list sudo aptitude update
Для установки Artix:TgBot выполните команду:
aptitude install artixcs-telegram-bot
Для проверки состояния Artix:TgBot выполните команду:
service artixcs-telegram-bot status
Настройка
Настройка работы Artix:TgBot осуществляется в конфигурационном файле application.properties
, расположенном в директории /opt/artixcs-telegram-bot/
.
Наименование | Тип данных | Возможные значение | Описание | Примечания |
---|---|---|---|---|
server.port | целочисленный | Порт сервиса | По умолчанию 3300 | |
su.artix.telegram.bot.token | строковый | Токен для подключения Telegram-бота к сторонним сервисам | По умолчанию your_token | |
su.artix.telegram.bot.accountingservice.prefix | строковый | URL для доступа к бонусному серверу | По умолчанию | |
su.artix.telegram.bot.accountingservice.user | строковый | Имя пользователя для доступа к бонусному серверу | По умолчанию Необходимо указать существующий терминал на бонусном сервере | |
su.artix.telegram.bot.accountingservice.password | строковый | Пароль для доступа к бонусному серверу | По умолчанию значение не задано | |
su.artix.telegram.bot.csservice.prefix | строковый | URL для доступа к кассовому серверу | По умолчанию | |
su.artix.telegram.bot.csservice.user | строковый | Имя пользователя для доступа к кассовому серверу | По умолчанию admin | |
su.artix.telegram.bot.csservice.password | строковый | Пароль для доступа к кассовому серверу | По умолчанию admin | |
su.artix.telegram.bot.salerendererservice.prefix | строковый | URL для доступа к сервису sale-renderer | По умолчанию http://localhost:38067/v1/ | |
su.artix.telegram.bot.counter.prefix | строковый | URL для доступа к сервису счетчиков | По умолчанию | |
su.artix.telegram.bot.counter.user | строковый | Имя пользователя для доступа к сервису счетчиков | По умолчанию admin | |
su.artix.telegram.bot.counter.password | строковый | Пароль для доступа к сервису счетчиков | По умолчанию admin | |
su.artix.telegram.bot.registration.card.enable | логический |
| Включение регистрации новых пользователей | По умолчанию true |
su.artix.telegram.bot.registration.card.lastname.fill | строковый |
| Требования к заполнению поля с фамилией при регистрации нового пользователя | По умолчанию
|
su.artix.telegram.bot.registration.card.firstname.fill | строковый | Требования к заполнению поля с именем при регистрации нового пользователя | ||
su.artix.telegram.bot.registration.card.middlenname.fill | строковый | Требования к заполнению поля с отчеством при регистрации нового пользователя | ||
su.artix.telegram.bot.registration.card.birthday.fill | строковый | Требования к заполнению поля с датой рождения при регистрации нового пользователя | ||
su.artix.telegram.bot.registration.card.gender.fill | строковый | Требования к заполнению поля с полом при регистрации нового пользователя | ||
su.artix.telegram.bot.issuance.card.prefix | строковый | URL для доступа к сервису выдачи карт | По умолчанию http://localhost:8094 | |
su.artix.telegram.bot.issuance.card.user | строковый | Имя пользователя для доступа к сервису выдачи карт | По умолчанию admin | |
su.artix.telegram.bot.issuance.card.password | строковый | Пароль для доступа к сервису выдачи карт | По умолчанию admin | |
su.artix.telegram.usecase.rule.subscribeuser.cache.unit | строковый | Единица измерения времени жизни кеша для пользователей, подписанных на Telegram-бот | По умолчанию DAYS | |
su.artix.telegram.usecase.rule.subscribeuser.cache.duration | целочисленный | Продолжительность жизни кеша для пользователей, подписанных на Telegram-бот | По умолчанию 1 | |
su.artix.telegram.usecase.rule.unsubscribeuser.cache.unit | строковый | Единица измерения времени жизни кеша для пользователей, заблокировавших чат с ботом | По умолчанию DAYS | |
su.artix.telegram.usecase.rule.unsubscribeuser.cache.duration | целочисленный | Продолжительность жизни кеша для пользователей, заблокировавших чат с ботом | По умолчанию 1 | |
su.artix.telegram.usecase.rule.statistics.trimmer.executestart | строковый | Cron-выражение для запуска подрезки статистики | По умолчанию 0 0 0 * * ? | |
su.artix.telegram.usecase.rule.statistics.trimmer.duration | целочисленный | Количество дней, за которое необходимо сохранять статистику по пользователям, которые подписались или заблокировали чат с ботом | По умолчанию 365 | |
spring.data.mongodb.uri | строковый | Имя (URN) и адрес (URL) ресурса в сети | По умолчанию mongodb://localhost/telegram_bot | |
phone_number.out_mask | строковый | Маска номера телефона | По умолчанию Согласно заданному в настройке значению осуществляется поиск клиента в базе данных Например: Указанный в Telegram-боте номер телефона: 89111232533. Пример №1
Если в настройке задано значение "+7**********", то на кассовый сервер будет передаваться номер телефона в формате: " +79111232533 ".
Пример №2
Если в настройке задано значение "(***)-***-**-**", то на КС передается номер телефона в формате: " (911)-123-25-33 ".
| |
client.age.restrict | целочисленный | Ограничение возраста клиента | По умолчанию 18 | |
barcode.formats | строковый |
| Форматы отображаемых кодов | Настройка необходима для отображения в меню кнопки "Показать карту" Если в настройке не указан ни один из форматов, кнопка "Показать карту" не будет отображена |
card.number.mask | строковый | Маска номеров карт (макроподстановка) | По умолчанию Пример
number{cardNumber}card
Могут использоваться только латинские символы. | |
licencecenter.contragentId | строковый | Токен для авторизации на сервере лицензий | По умолчанию значение не задано Настройка обязательна для заполнения. Если настройка не задана, то чат с Telegram-ботом не запустится. | |
serviceName | строковый | Наименование сервиса | По умолчанию | |
localeDirPath | строковый | Путь к сообщениям бота | По умолчанию Путь до файлов, в которых хранятся сообщения от Telegram-бота В директории по умолчанию хранится файл Дополнительно в директории хранится файл Сообщения для локализации считываются из файлов в порядке приоритета: в первую очередь из основного файла MessagesBundle_Русский.properties , затем из дополнительного Sample_MessagesBundle_Русский.properties . | |
Скрытые настройки | ||||
StartCommand.buttons.client_data.enable | логический | Отображение кнопки "Профиль" в Telegram-боте | По умолчанию Для включения отображения кнопки "Профиль" в файл нужно добавить настройку с значением | |
QueuePushMessage.requestsPerSecond | целочисленный | Количество сообщений, отправляемых в задаче на рассылку за одну секунду | По умолчанию Для изменения количества сообщений в файл нужно добавить настройку с необходимым значением | |
CleaningService.lifeDays | целочисленный | Количество дней до удаления завершенных задач из БД | По умолчанию Для изменения количества дней в файл нужно добавить настройку с необходимым значением Процесс удаления запускается раз в день или при перезапуске Artix:TgBot | |
spring.servlet.multipart.max-file-size | целочисленный | Максимальный размер файлов, принимаемых в запросах | По умолчанию Для увеличения лимита размера файлов, принимаемых в запросах, в файл нужно добавить настройку с необходимым значением | |
spring.servlet.multipart.max-request-size | целочисленный | Максимальный размер запросов | По умолчанию Для увеличения лимита размера принимаемых запросов в файл нужно добавить настройку с необходимым значением | |
image.barcode.width | целочисленный | Ширина генерируемых кодов (в пикселях) | По умолчанию | |
image.2D_barcode.height | целочисленный | Высота генерируемых двумерных кодов (в пикселях) | По умолчанию | |
image.linear_barcode.height | целочисленный | Высота генерируемых линейных кодов (в пикселях) | По умолчанию | |
image.barcode.frame.size | целочисленный | Размер дополнительный рамки вокруг изображения с кодом (в пикселях) | По умолчанию |
server.port=3300 su.artix.telegram.bot.token = your_token su.artix.telegram.bot.accountingservice.prefix = http://localhost:38054/ACC/rest/v1/ su.artix.telegram.bot.accountingservice.user = LM_DEFAULT_TERMINAL su.artix.telegram.bot.accountingservice.password = su.artix.telegram.bot.csservice.prefix = http://localhost:38051/CSrest/rest/ su.artix.telegram.bot.csservice.user = admin su.artix.telegram.bot.csservice.password = admin su.artix.telegram.bot.salerendererservice.prefix = http://localhost:38067/v1/ su.artix.telegram.bot.counter.prefix = http://localhost:39021 su.artix.telegram.bot.counter.user = admin su.artix.telegram.bot.counter.password = admin # enable registration for new users (true, false) su.artix.telegram.bot.registration.card.enable = true # requirements for filling out fields when registering a new user (REQUIRED, OPTIONAL, DISABLE) su.artix.telegram.bot.registration.card.lastname.fill = REQUIRED su.artix.telegram.bot.registration.card.firstname.fill = REQUIRED su.artix.telegram.bot.registration.card.middlenname.fill = REQUIRED su.artix.telegram.bot.registration.card.birthday.fill = REQUIRED su.artix.telegram.bot.registration.card.gender.fill = REQUIRED su.artix.telegram.bot.issuance.card.prefix = http://localhost:8094 su.artix.telegram.bot.issuance.card.user = admin su.artix.telegram.bot.issuance.card.password = admin # Statistics (DAYS or MINUTES) su.artix.telegram.usecase.rule.subscribeuser.cache.unit=DAYS su.artix.telegram.usecase.rule.subscribeuser.cache.duration=1 su.artix.telegram.usecase.rule.unsubscribeuser.cache.unit=DAYS su.artix.telegram.usecase.rule.unsubscribeuser.cache.duration=1 su.artix.telegram.usecase.rule.statistics.trimmer.executestart=0 0 0 * * ? su.artix.telegram.usecase.rule.statistics.trimmer.duration=365 spring.data.mongodb.uri = mongodb://localhost/telegram_bot phone_number.out_mask = 7********** client.age.restrict = 18 #Форматы отображаемых кодов. Поддерживаемые форматы: QRCode,DataMatrix,Code128 barcode.formats=QRcode, DataMatrix, Code128 card.number.mask={cardNumber} # токен для авторизации на сервере лицензий licencecenter.contragentId = serviceName=artixcs-telegram-bot localeDirPath=/opt/artixcs-telegram-bot/locale
Создание бота
Для создания Telegram-бота необходимо:
- В приложении
Telegram
найти и запустить бота@BotFather
. - Выбрать команду
/newbot
и задать имя для будущего бота. - Токен, полученный от бота
@BotFather
, указать в настройкеsu.artix.telegram.bot.token
в конфигурационном файле/opt/artixcs-telegram-bot/application.properties
. Перезапустить Artix:TgBot командой:
systemctl restart artixcs-telegram-bot
Telegram
найти бота по имени и запустить.
Использование SpEL-выражения в файле с сообщениями от Telegram-бота
Для использования SpEL-выражения в файле с сообщениями от Telegram-бота, который хранится в директории /opt/artixcs-telegram-bot/locale
, необходимо прописать выражение в фигурных скобках, поставив перед ними знак $
:
${IT_IS_SPEL}
Модули для использования в SpEL-выражении:
Наименование модуля | Описание | Примечания |
---|---|---|
BonusModule | Модуль для работы с сервером бонусов | Поддержаны следующие методы:
|
CounterModule | Модуль для работы с сервером счетчиков | Поддержаны следующие методы:
|
ClinetModule | Модуль для работы с данными клиента | Поддержаны следующие методы:
|
Уточнения по работе с Telegram-ботом
- При ошибках валидации лицензии сервис Artix:TgBot продолжает работу, но все операции в чате с Telegram-ботом будут недоступны.
- Сессия создается сразу же, как только пользователь отправил сообщение в чат, и прерывается после 5-ти минут бездействия или при перезапуске бота.
- Измененные данные из раздела "Профиль" поступают на кассовый сервер каждые 10 секунд. Если в течение 10-ти секунд пользователь отправит несколько запросов на изменение, то все они будут отправлены на кассовый сервер как один запрос.
- В один момент времени пользователем может быть выполнена только одна задача. Например, если пользователь запросил список покупок и, не дожидаясь ответа, запросил список акций, то второй запрос выполнен не будет.