Slack бот на 1С

Обмен - Обмен с другими системами

Представляю небольшую разработку, позволяющую использовать 1С в качестве бэкенда для слакбота. В 1С нужно настроить Http-сервис и запустить небольшую утилиту.

Общая суть проста - приложение прослойка подключается к серверу Slack и ждет сообщений. Затем транслирует их в 1С и возвращает ответ пользователю. Отправлять сообщения из 1С можно и напрямую, минуя утилиту. Хотя на эту тему публикаций достаточно, но в демо базе функции есть.

Итак, как настраивать. В архиве есть slackbot.exe и config.json. Они должны быть в одном каталоге. В конфиге нужно указать токен, полученный на странице https://my.slack.com/services/new/bot . Также нужно указать адрес http-сервиса, настроенного в 1С и параметры доступа к нему. И затем запустить slackbot.exe. Он просто отправляет GET запросы с параметрами user, message и email. Для полноценной работы можно с помощью сторонних утилит запускать как сервис. Прослойка написана на Go, исходник простой и лежит на https://github.com/nikepan/go-rtm2http-slackbot. В архиве лежат x86 версии под windows и linux.

После этого можно отправить боту команду "бабло" (без слэша и кавычек). Пример http-сервиса есть в приложенном dt файле. Там обрабатываются команды "бабло", "проекты" и "документы". Также есть возможность в пользовательсоком режиме настроить ответы на другие сообщения. Роутинг сообщений для простоты реализован прямо в модуле http-сервиса. В демо-базе пользователи ищутся по адресу электронной почты, и если не находятся, то по идентификатору Slack.

// Обработчик команды бабло
Функция ВывестиБабло(Сотрудник) Экспорт
	ТекстОтвета = "Привет, " + ОбщегоНазначения2.ПолучитьИмяФизлица(Сотрудник) + Символы.ВК;
	ТекстОтвета = ТекстОтвета + "Ты нам ничего не должен)";		
	Возврат ТекстОтвета;
КонецФункции

Обработка "Тест Слак" демонстрирует отправку сообщений напрямую из 1С. Содержит всего несколько функций:

  • Отправка сообщения пользователю с указанным адресом;
  • Получение сообщений чатов с пользователями;
  • Заполнение идентификаторов пользователей и их каналов для более быстрой прямой отправки из 1С (чтобы не запрашивать их каждый раз).

Если в базе используется авторизация, то, как обычно, делаем пользователя на латиннице с ролью "слакбот" и указываем параметры входа в прослойке. При интеграции в пути к базе скорее всего нужно будет только заменить db на имя базы, если не менять сервис.

Константы:
  • ТокенСлак - нужна для отправки сообщений прямо из 1С. Пример есть в обработке ТестSlack.
  • ИмяСлак - то, как бот будет себя называть.
  • ИдСлак - нужно при ручном заборе сообщений в обработке ТестSlack, чтобы не показывать сообщения бота.

Разработку делал год назад как черновик, с тех пор она успешно работает. А я год 1С почти не занимался. Недавно, чуть причесал прослойку, и решил выложить комплекс здесь. Вдруг кому надо. В базе может что-то не работать, так как вырезал из рабочей и полностью не проверял. Но на сообщения отвечает. Если что, подскажу и поправлю.

Скачать файлы

Наименование Файл Версия Размер
Slackbot_1C
.zip 4,14Mb
29.01.17
6
.zip 1.0 4,14Mb 6 Скачать

См. также

Комментарии
1. Алексей Перелыгин (pereligins) 21 14.06.17 18:51 Сейчас в теме
Добрый день! Исходники не предоставляете?
2. Николай Павлович (PaNick) 134 21.06.17 09:41 Сейчас в теме
(1) Алексей, там же есть ссылка на github. А в 1С все открыто
3. Алексей Перелыгин (pereligins) 21 21.06.17 16:34 Сейчас в теме
(2) Точно, прошу прощения. проглядел этот абзац. Спасибо!
Оставьте свое сообщение