modSlack. Компонент интеграции со slack.com

На днях спрашивал, нужен ли компонент интеграции со слэком, но однозначной реакции не последовало. Хотя сказали, что надо просто отдельный топик написать, чтобы больше народу увидело и высказалось. ОК, публикую.

Вообще отмечу, что компонент уже используется на сайте MODX-Клуба и у нас уже есть действующая интеграция со слэком, плюс есть готовая успешная интеграция на стороннем проекте, то есть компонент в общих чертах уже обкатанные. Скажу так: это не просто чатилка, это очень мощный инструмент для различных бизнес-решений. К примеру, у нас из слэка можно комментарии писать сразу на сайт Клуба, и они будут создаваться где надо и от имени MODX-пользователя автора. Это очень крутая фишка. Область применения практически неограниченная. Печально только то, что на бесплатном аккаунте нет возможности создавать отдельные группы пользователей со своими наборами политик доступа, но это не большая проблема.

Краткая инструкция подключения.

1. Создаем в слэке свою команду slack.com/create

2. Идем на страницу приложений api.slack.com/apps и создаем новое.


3. Переходим в «OAuth & Permissions» и указываем Redirect URL вида your.site/assets/components/modslack/connectors/connector.php?pub_action=access


На этом настройка на стороне слэка закончилась. Теперь на стороне самого сайта надо настроить доступы и получить токен.

1. Заходим в системные настройки и указываем client-id и client-secret.


Эти данные находятся в базовой информации вашего слэк-приложения


2. Запрашиваем токен для главного пользователя. Для этого переходим по ссылке вида ваша-команда.slack.com/oauth/authorize?scope=identify,client,admin&client_id=ID-вашего-приложения(client-id). В ответ вы должны получить подобное окно:


Важно! Вы должны быть авторизованы на своем сайте, так как после авторизации в слэке вы будете переброшены на ваш сайт и там должен привязаться токен к вашему аккаунту.

Если все хорошо прошло, то к вашему MODX-пользователю будет привязан токен доступа в слэк. Чтобы проверить его, можно воспользоваться компонентом Console. При установке modSlack сразу создает для него специальный скрипт с несколькими базовыми командами.


Загрузив и выполнив его, вы должны увидеть информацию об успешной авторизации


Если авторизация успешна, то можно выполнять прочие команды. К примеру, можно получить список каналов


Или пригласить нового пользователя в слэк.


Вот здесь очень важный момент: с приглашениями не все так просто. К сожалению, нельзя просто так взять и создать пользователя в слэке. Это все происходит в два этапа:

1. Приглашаем пользователя (выше вызов процессора написал).
Пользователь получает на почту приглашение в слэк (не на ваш сайт, а именно в слэк). Там он регистриуется и получает личный слэк-аккаунт. В этот момент сайт еще ничего не знает об этом пользователей (спойлер: скоро научится)).

2. После этого пользователь должен авторизоваться на вашем сайте так же, как системный пользователь, только без прав admin, то есть ссылка вида ваша-команда.slack.com/oauth/authorize?scope=identify,client&client_id=ID-вашего-приложения(client-id). Это уже ваша задача сообщить ссылку пользователю. Когда пользователь по ней пройдет и авторизует приложение, его перебросит на сайт и ему будет привязан его токен уже в базе данных сайта. Все, с этим токеном уже можно выполнять так же действия по чтению каналов, публикации комментариев и т.п.

Компонент доступен в https://modstore.pro.
Пока цена на него установлена 2990 рублей (плюс надо закладывать тысячи три на нашу помощь в более гибкой интеграции). Пока не могу сказать повысится стоимость или нет (время покажет), но меньше она не будет, так что лучше брать уже сейчас.

Буду рад комментариям.
Fi1osof
19 декабря 2016, 12:46
modx.pro
4 877
+8

Комментарии: 20

Fi1osof
19 декабря 2016, 15:54
+1
Кстати, у нас при публикации топиков и комментов на сайте, они сразу постятся и в слэк.
    Василий Столейков
    19 декабря 2016, 15:57
    1
    +1
    Спасибо, очень удобно!
    Скоро возможно понадобится!
    Жаль только что много действий на стороне слэка при регистрации, но думаю результат стоит того!
      Fi1osof
      19 декабря 2016, 16:03
      +2
      Я сейчас изучаю один вариант. Скорее всего научусь перехватывать событие добавления пользователя на стороне слэк и слать на обработку запрос сразу на сайт. Отпишусь.
      An Si
      19 декабря 2016, 16:57
      +1
      А можно ещё пару предложений про то, для кого это дополнение? Вот написано
      мощный инструмент для различных бизнес-решений
      Например?
        Fi1osof
        19 декабря 2016, 17:09
        +2
        Например, мы в работе используем систему управления проектами planfix.ru/
        Почту в работе почти не используем (только предварительные какие-то обсуждения). Когда же проект запускается в работу, обязательно вся коммуникация уже выполняется через планфикс. Но когда приходит кто-то с мелкой задачей, тащить в планфикс его (в том числе заставлять там зарегистрироваться) — это уже не очень удобно. У нас в планфиксе больше сотни проектов точно (не считая мелких проектов в собирательных проектах типа «Мелкие доработки»). А через почту командно работать не удобно. В таких случаях получается, что мелки проекты попадают в зону «неудобных» и «неинтересных» (много действий ради тысячи-двух). И вот как раз в этом случае слэк очень удобен. Вот как раз вчера человек пришел с мелкими доработками, я его отправил в слэк, он зарегался, я создал отдельный групповой чат с ним и парой наших специалистов, они там оперативно все сделали. Все. После этого групповой чат дропнули. Все. Получилось и интерактивно, и минимум действий.

        Создавать такие групповые чаты можно и через API. К примеру, мы планируем ввести такой сервис: запрос экстренной помощи: пользователь у нас на сайте отправляет сообщение через специальную форму, которая инициирует создание такого группового чата с нашими специалистами. Время реагирования будет менее 10 минут. Плата за услугу будет списываться с баланса.

        Сейчас еще хотим реализовать отправку сообщений из слэка сразу в планфикс (там тоже есть обработчики). То есть переписываемся мы такие в общем порядке, а тут бац и рапортуют о баге какой-нибудь. Сразу взял и перенаправил сообщение в планфикс (а там уже на контроль ставить со сроками, исполнителями и т.п.).

        В общем, очень много всего можно придумать.
          Николай
          21 декабря 2016, 09:43
          0
          Николай, приветствую!
          А можете, пожалуйста, поделиться опытом внедрения планфикса. Интерфейс адский на то, чтобы с ним работать нужно реально потратить время. Как у вас коллеги отнеслись к переходу на него?
          Чем сервис вообще удобен?
            Fi1osof
            21 декабря 2016, 18:57
            +1
            Добрый день!

            Адский??? Конечно у каждого свое мнение, но у нас многие сходятся во мнении, что в планфиксе многое сделано классно, и не мало наших клиентов, которые работали с нами в планфиксе, начали использовать его для себя. В общем, коллеги тоже нормально на нем сидят. Может просто надо чуть больше времени на освоение потратить?

            Из плюсов, отмечу:
            1. Разработчики русские. С ними всегда можно пообщаться, обсудить идеи, узнать планы и т.п. Я с ними довольно много общался и хочу сказать, что ребята очень и очень толковые. И реагируют не только на баги, но и на просьбы. Вот недавний случай: joxi.ru/gmvRZo9SLxlbom
            Всего 5 дней с момента обращения, и они доработали функционал. Именно не восстановили, а доработали как я просил. joxi.ru/5mdkp83skv9Lvr
            За одну только такую поддержку я никуда от них не уйду.
            2. Отлично работа через почту настроена. То есть на поступающие уведомления можно отвечать прям в почте, и сообщения будут добавлены комментариями туда, куда надо. Так же у каждой задачи и у каждого проекта есть свой емейл, так что можно на эти емейлы писать, и будут созданы новые задачи и комментарии. Очень удобно. Плюс к этому можно настроить логику обработки писем, к примеру, так, чтобы при поступлении письма на указанный ящик сразу создавалась задача с заданным шаблоном.
            3. Логику проекта они доработали так, что это уже не только система управления проектами, но и CRM-система. Можно лиды обрабатывать и т.п. Еще не много, и они будут не хуже битрикс24 в этом плане. Жду только от них удобного редактора бизнес-процессор, как это в битрикс24 реализовано. Тогда им вообще цены не будет.
            4. Мощные отчеты у них и конструктор запросов. joxi.ru/ZrJVWD0u91KoBr
            Хочу такой же в modMonitor реализовать.
            И вообще там много-много всего интересного. И API есть.
          Владимир
          19 декабря 2016, 17:15
          +1
          Привет. Я просто пользователь, потому мой ответ — лишь частный взгляд. Если ты зарегистрирован в slack.com, например тут: отдельная комната для русскоговорящих разработчиков, то мог видеть функционал, который весьма подходит для команд различной численности, с возможностью, в процессе чата, например, приглашать собеседников в отдельную приватную переписку и т.п.
          Советую просто ознакомиться по вышеприведенной ссылке. Тогда к разработчикам компонента интеграции вопросы будут более конкретные.
            An Si
            19 декабря 2016, 17:37
            0
            Ну вопрос был потому что в посте были в основном технические моменты интеграции со Slack. Для меня это очередной мессенджер, поэтому хотелось узнать, может меня это заинтересовать или нет. С ходу нельзя придумать как это применить на новостном портале или в интернет-магазине. Как я понял, это решение для чего-то более специфического, требующего организации командной работы или тех. поддержки в связке с онлайн площадкой.
              Владимир
              19 декабря 2016, 17:43
              0
              организации командной работы или тех. поддержки
              — да, именно в этом направлении.
              Но зайти в этот чат стоит, все будет наглядно.
                Fi1osof
                19 декабря 2016, 17:57
                0
                В тех же магазинах можно автоматизировать бизнес-процессы и настроить работу в тех случаях, когда несколько менеджеров работает. К примеру, у нас есть заказчик, у которого не должны менеджеры видеть все заказы, при этом заказ обязательно должен быть назначен какому-нибудь менеджеру. Можно при поступлении заказа отправлять уведомление в слэк сразу с предложенными вариантами-кнопками кому назначить заказ. Главный менеджер принимает решение, выбрав соответствующего менеджера. Собственно, как раз эту технологию сейчас осваиваю сижу.


                В общем, еще раз: не ограничивайтесь какой-то определенной сферой, здесь можно найти применение практическ в любой сфере, была бы только фантазия.
                  An Si
                  19 декабря 2016, 19:27
                  0
                  Ясно, спасибо за примеры.
                    Fi1osof
                    19 декабря 2016, 19:32
                    0
                    Не за что!
            Іван Клімчук
            19 декабря 2016, 17:46
            +3
            Я видел топик еще в канале в слаке пару дней назад, но как и люди выше, не совсем понял область применения. Пример с планфиксом на самом деле довольно специфический, хотя и имеет место быть. Но при цене в почти 3к польза не очевидна. В случае с мониторингом там было очевидно (для меня по крайней мере) и я по прежнему согласен, что цена может быть любой. Но как покупателю мне пока не хватает описания выгод, которые я могу получить, купив дополнение.

            Касательно же распространненного использования слака в качестве точки сбора уведомлений, то есть бесплатный modstore.pro/packages/alerts-mailing/slackify
              Fi1osof
              19 декабря 2016, 18:01
              0
              Один пример привел выше.

              Про modMonitor: можно навесить события и уведомляшки сразу слать в слэк.

              Про slackify: не годится для двусторонней интеграции, только уведомляшки в одну сторону.
                Іван Клімчук
                19 декабря 2016, 18:06
                +3
                Я вот и спрашиваю про примеры (кроме того, что приведен) интеграции в сторону «из слак».
                  Fi1osof
                  19 декабря 2016, 18:09
                  0
                  Еще один пример я приводил выше: из слэка у нас можно писать комментарии, которые сразу создаются на сайте Клуба. В случае с тем же новостным порталом можно оперативно публикации фигачить прям из приложения. Эдакий «мобильный репортер» без необходимости писать для репортеров специальные интерфейсы-редакторы (у слэка очень мощный редактор и интерпретатор).
                    Іван Клімчук
                    19 декабря 2016, 18:13
                    +1
                    Я работал в крупном СМИ, у них процессы построены по другому, так что вряд ли это применимо. К тому же как обрабатывать ошибочно отправленный комментарий в чат, который станет публикацией? В довесок, кроме работы журналиста есть еще работа корректора и редактора, которые не выпустят заметку в сыром виде через слак. Для текстовой трансляции события — возможно, но для этих целей уже хватает специализированных инструментов с прямой интеграцией кода сервиса в страницу заметки.
                      Fi1osof
                      19 декабря 2016, 18:39
                      +1
                      Мне тоже доводилось поработать с новостным проектом. И могу точно сказать, что туда использовать можно. Во-первых, так же можно использовать черновики, модерацию, публикацию и т.п. В слэке есть событийное API, можно реагировать на редактирование комментариев, топиков и т.п. Так что это не будет сильно отличаться от работы через собственные редакторы. К тому же слэк можно использовать один канал сразу для нескольких проектов, и здесь развитие слэк-редактора будет централизованным развитием сразу для нескольких проектов.
                      Опять-таки, куда и как использовать — это дело каждого. Но мое мнение прежнее: сфер применения очень много.
              Fi1osof
              19 декабря 2016, 19:35
              +1
              Компонент опубликован. modstore.pro/packages/alerts-mailing/modslack
                Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.
                20