| Artix:TgBot является лицензируемым продуктом. Для его использования необходимо наличие лицензионного ключа. Подробнее об этом можно прочитать в разделе "Лицензирование". |
С инструкцией по поэтапной установке и настройке Artix:TgBot можно ознакомиться разделе "Установка и настройка Artix Telegram Bot". |
Для установки Artix:TgBot необходимо cкачать и запустить скрипт установки:
curl https://update.artix.su/static/cs/install_scripts/stable/telegram_bot/install.sh -o /tmp/install.sh chmod +x /tmp/install.sh /tmp/install.sh |
Для проверки состояния Artix:TgBot выполните команду:
service artixcs-telegram-bot status |
Для обновления Artix:TgBot необходимо выполнить команды:
sudo apt update sudo apt install artixcs-telegram-bot |
Для обновления можно использовать скрипт установки:
curl https://update.artix.su/static/cs/install_scripts/stable/telegram_bot/install.sh -o /tmp/install.sh chmod +x /tmp/install.sh /tmp/install.sh stable true |
Настройка работы 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.registration.withsubscribe | логический |
| Автоматическое включение рассылки для новых пользователей в разрешенных каналах связи | По умолчанию false | |||
| 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 | строковый | Маска номера телефона | По умолчанию Согласно заданному в настройке значению осуществляется поиск клиента в базе данных Например:
| ||||
client.age.restrict | целочисленный | Ограничение возраста клиента | По умолчанию 18 | ||||
barcode.formats | строковый |
| Форматы отображаемых кодов | Настройка необходима для отображения в меню кнопки "Показать карту" Если в настройке не указан ни один из форматов, кнопка "Показать карту" не будет отображена | |||
card.number.mask | строковый | Маска номеров карт (макроподстановка) | По умолчанию
| ||||
licencecenter.url | строковый | URL для доступа к серверу лицензий | По умолчанию | ||||
licencecenter.contragentId | строковый | Токен для авторизации на сервере лицензий | По умолчанию значение не задано
| ||||
| serviceName | строковый | Наименование сервиса | По умолчанию | ||||
localeDirPath | строковый | Путь к сообщениям бота | По умолчанию Путь до файлов, в которых хранятся сообщения от Telegram-бота
| ||||
welcome.bonus.enable | логический |
| Включение начисление приветственных бонусов | По умолчанию | |||
welcome.bonus.amount | целочисленный | Количество начисляемых приветственных бонусов | По умолчанию 1000 | ||||
welcome.bonus.days.active | целочисленный | Время жизни приветственных бонусов | По умолчанию 7 | ||||
welcome.bonus.acceptWeigh | целочисленный | Вес операций группы приветственных бонусов | По умолчанию 300 | ||||
Скрытые настройки | |||||||
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 | целочисленный | Размер дополнительный рамки вокруг изображения с кодом (в пикселях) | По умолчанию | ||||
client.unsubscribe.allowed | логический |
| Отображение кнопки "Отписаться от рассылки"/"Подписаться на рассылку" в Telegram-боте | По умолчанию Для включения отображения кнопки "Отписаться от рассылки"/"Подписаться на рассылку" в файл нужно добавить настройку с значением | |||
server.port=3300
# spring-boot configs
spring.profiles.active=features
spring.data.mongodb.uri=mongodb://localhost/telegram_bot
# artix telegram-bot configs
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 = TELEGRAM_BOT_DEFAULT_TERMINAL
su.artix.telegram.bot.accountingservice.password =
# получать информацию о сгорающих в ближайшее время бонусных баллах
su.artix.telegram.bot.accountingservice.get_expiring_balance = true
# кол-во дней от текущей даты для подсчета сгорающих бонусов
su.artix.telegram.bot.accountingservice.days_from_now_to_count_bonus_expiring = 7
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
# set client.subscriptionaladj = true and client.communications = TELEGRAM automatically when registration
su.artix.telegram.bot.registration.withsubscribe=false
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
phone_number.out_mask = 7**********
client.age.restrict = 18
StartCommand.buttons.client_data.enable=true
#Форматы отображаемых кодов. Поддерживаемые форматы: QRCode,DataMatrix,Code128
barcode.formats=QRCode
card.number.mask={cardNumber}
# url сервера лицензий
licencecenter.url=ls.artix.su
# токен для авторизации на сервере лицензий
licencecenter.contragentId =
# welcome bonus
welcome.bonus.enable=false
welcome.bonus.amount=1000
welcome.bonus.days.active=7
welcome.bonus.acceptWeight=300
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-бота, который хранится в директории /opt/artixcs-telegram-bot/locale, необходимо прописать выражение в фигурных скобках, поставив перед ними знак $:
${IT_IS_SPEL} |
Модули для использования в SpEL-выражении:
| Наименование модуля | Описание | Примечания |
|---|---|---|
| BonusModule | Модуль для работы с сервером бонусов | Поддержаны следующие методы:
|
| CounterModule | Модуль для работы с сервером счетчиков | Поддержаны следующие методы:
|
| ClientModule | Модуль для работы с данными клиента | Поддержаны следующие методы:
|
Порядок обращения модулей определяется последовательностью их использования в SpEL-выражении. Используемые модули привязываются к клиенту, выполняющему запрос.
Помимо указанных модулей в SpEL-выражениях используются нативные конструкции языка Java. |
На экране будет отображено:
На экране будет отображено:
|
Для включения кнопок "Отписаться от рассылки"/"Подписаться на рассылку" необходимо:
Добавить в конфигурационный файл настройку:/opt/artixcs-telegram-bot/application.properties
client.unsubscribe.allowed = true |
В конфигурационном файле /opt/artixcs-telegram-bot/locale/MessagesBundle_Русский.properties можно изменить настройки переводов:
unsubscribe_promotion_button = Отписаться от рассылки subscribe_promotion_button = Подписаться на рассылку unsubscribe_promotion_message = Вы решили не получать наши лучшие [и секретные] предложения. Уверены, что не будете скучать️? subscribe_promotion_message = Отлично! Вы решили всегда быть в курсе наших лучших [и секретных] предложений unsubscribe_promotion_submit_button = Не хочу получать выгодные предложения subscribe_promotion_submit_button = Вперед к выгодным покупкам subscribed_post_message = Теперь Вы не пропустите наши выгодные предложения! Они уже в пути! unsubscribed_post_message = Когда Вы не получаете наши акции, в мире становится больше грусти... Но Вы всегда можете передумать и подписаться в настройках профиля |
Перезапустить Artix:TgBot командой:
systemctl restart artixcs-telegram-bot |
Для изменения названия валюты необходимо в конфигурационном файле /opt/artixcs-telegram-bot/locale/MessagesBundle_Русский.properties изменить настройки переводов:
currency_short_name = руб. |
Для изменения отображения информации о чеке при просмотре истории покупок используется настройка purchase_item в конфигурационном файле /opt/artixcs-telegram-bot/locale/MessagesBundle_Русский.properties.
В настройке необходимо указывать SpEL-выражение. Поддержаны следующие поля:
#purchase.date – возвращает дату покупки,
#purchase.cashSum – возвращает сумму покупки,
#purchase.bonusSum – возвращает количество начисленных бонусов за покупку,#purchase.paymentBonusSum – возвращает количество списанных бонусов за покупку.
На экране будет отображено:
На экране будет отображено:
|