Общая суть проста — приложение прослойка подключается к серверу Slack и ждет сообщений. Затем транслирует их в 1С и возвращает ответ пользователю. Отправлять сообщения из 1С можно и напрямую, минуя утилиту. Хотя на эту тему публикаций достаточно, но в демо базе функции есть.
Итак, как настраивать. В архиве есть slackbot.exe и config.json. Они должны быть в одном каталоге. В конфиге нужно указать токен, полученный на странице https://my.slack.com/services/new/bot . Также нужно указать адрес http-сервиса, настроенного в 1С и параметры доступа к нему. И затем запустить slackbot.exe. Он просто отправляет POST запросы с параметрами 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С почти не занимался. Недавно, чуть причесал прослойку, и решил выложить комплекс здесь. Вдруг кому надо. В базе может что-то не работать, так как вырезал из рабочей и полностью не проверял. Но на сообщения отвечает. Если что, подскажу и поправлю.
Добрый день! Исходники не предоставляете?
(1) Алексей, там же есть ссылка на github. А в 1С все открыто
(2) Точно, прошу прощения. проглядел этот абзац. Спасибо!
Добрый день!
https://slack.com/api/im.history?token=xoxp-xxxx.. .
в форме теста при нажатии на «Входящие сообщения» выходит ошибка
в браузере это выглядит также:
{«ok»:false,»error»:»missing_scope»,»needed»:»im:history»,»provided»:»identify,incoming-webhook»}
У меня неверные настройки в Slack? или у них API изменился?