Info |
---|
Данный бот в качестве примера реализует произвольное конфигурируемое текстовое меню на линиях. Для более быстрой реализации вашего бота рекомендуем внимательно ознакомиться с документацией к сервису. |
Требования к окружению
OS: Linux/Windows
Go: 1.17+
Сборка и запуск
Сборка из исходников
https://github.com/1C-Connect/1cconnect-text-bot
...
Note |
---|
Сборка требует установленного окружения! |
Запуск собранной версии
Code Block |
---|
./connect-text-bot --config=config.yml --bot=bot.yml |
...
Note |
---|
Данный бот отслеживает изменения конфигурации меню, содержимое можно менять “на горячую”, но стоит предварительно проверять через валидатор (например https://onlineyamltools.com/validate-yaml). |
Разворачивание бота
Info |
---|
Цифровое меню - это интерфейс в приложении 1С-Коннект, через который пользователь взаимодействует с ботом, воспроизведенном на вашем сервере. |
...
Подготовить машину имеющую доступ в интернет и способную принимать HTTP запросы из интернета.
Лучшим выбором будет Linux, возможно использование виртуальной машины
Настроить пользователя API в кабинете администратора 1С-Коннект:
Раздел Администрирование -> Настройки API
Создать нового пользователя.
Включить опцию Внешний сервер для обработки данных в нужной линии:
Откройте в карточку линии и в разделе Чат-бот включите соответствующую настройку.
Необходимо получить ID линии для которой была включена внешняя обработка
Выполнит запрос 4.2.3.5. Получение доступных линий поддержки (можно открыть ссылку https://push.1c-connect.com/v1/line/ в браузере и ввести логин/пароль от ранее созданного пользователя).
Найти линию в списке и сохранить ее ID.
На подготовленный сервер загрузить приложение бота, файл с цифровым меню.
Сконфигурировать и запустить приложение:
Создать конфигурационный файл. Пример лежит в файле
config/config.yml.sample
и отредактировать его.Указать в блоке server адрес к серверу на котором развернут бот.
...
Указать логин/пароль ранее созданного пользователя API.
Указать ID линии в разделе lines, можно указывать несколько линий.
Бот может отправлять файлы, в конфигурационном файле можно указать путь к папке с файлами, далее в меню указывать имена файлов для отправки в чат.
Приложение может быть запущено с указание путей к соответствующим файлам.
Конфигурация меню
Конфигурационный файл представляет собой yml
файл вида:
...
Code Block |
---|
buttons: - button: id: 1 # Нажатие на эту кнопку переведёт в nested_menu text: 'Текст кнопки' chat: 'Сообщение' menu: id: 'nested_menu' ... |
Настройки по умолчанию
Для специальных пунктов меню:
...
Code Block |
---|
greeting_message: 'Здравствуйте.' |
Как отправить текст:
Code Block |
---|
buttons: - button: id: 1 text: 'Текст кнопки' chat: - chat: 'Сообщение' |
Как отправить файл:
Code Block |
---|
buttons: - button: id: 1 text: 'Текст кнопки' chat: - file: 'file.pdf' file_text: 'Сопроводительное сообщение к файлу.' |
Как закрыть обращение:
Code Block |
---|
buttons: - button: id: 9 text: 'Закрыть обращение' close_button: true |
Как перевести обращение на специалиста:
Code Block |
---|
buttons: - button: id: 0 text: 'Перевести на специалиста' redirect_button: true |
Как создать меню?
Способ №1
Code Block |
---|
menus: start: answer: - chat: 'Здравствуйте.' buttons: - button: id: 1 text: 'a' menu: id: 'новое_меню' answer: - chat: 'welcome' buttons: - button: id: 1 text: 'Текст кнопки' final_menu: answer: - chat: 'Могу ли я вам чем-то еще помочь?' buttons: - button: id: 1 text: 'Да' goto: 'start' - button: id: 2 text: 'Нет' chat: - chat: 'Спасибо за обращение!' close_button: true - button: redirect_button: true back_button: id: 8 text: 'Назад' redirect_button: id: 0 text: 'Соединить со специалистом' close_button: id: 9 text: 'Закрыть обращение' |
Способ №2
Code Block |
---|
menus: start: answer: - chat: 'Здравствуйте.' buttons: - button: id: 1 text: 'a' goto: 'новое_меню' новое_меню: answer: - chat: 'welcome' buttons: - button: id: 1 text: 'Текст кнопки' final_menu: answer: - chat: 'Могу ли я вам чем-то еще помочь?' buttons: - button: id: 1 text: 'Да' goto: 'start' - button: id: 2 text: 'Нет' chat: - chat: 'Спасибо за обращение!' close_button: true - button: redirect_button: true back_button: id: 8 text: 'Назад' redirect_button: id: 0 text: 'Соединить со специалистом' close_button: id: 9 text: 'Закрыть обращение' |
...