Обновленная интеграция MODX-Клуба со слэком


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

И так, сегодня выкатили обновленную интеграцию на сайте MODX-Клуба. Каких-то серьезных изменений на уровне самого компонента не было, поэтому даже не собирал новую версию modSlack. Все сделанное было на самом деле на уровне самого слэка (внимательного изучения документации, многих часов экспериментов и т.д. и т.п.).

Что именно было сделано?

1. Переделали фронт на сайте Клуба. Теперь информация о комментариях идет не совсем через наш сайт, а напрямую от слэка посредством веб-сокетов. То есть все идет в режиме реального времени, и мало того, что сообщения поступают мгновенно (а не раз в 15 секунд, как было до этого), так можно даже выводить информацию типа «Стойте! Кто-то что-то пишет. Может быть вам?»

И здесь есть маленькая приятность: теперь основной канал из слэка транслируется даже для не авторизованных пользователей прям на главной странице. Думаем на счет того, чтобы дать возможность писать сообщения в канал даже будучи не авторизованными.

2. Оптимизировали регистрацию и авторизацию. Теперь не надо выполнять несколько сложных шагов, описанных в прошлой статье. Общий принцип остался прежний, но теперь все гораздо проще и понятней. Теперь все работает так:

— Пользователь получает инвайт и регистрируется в слэке. Теперь приглашение может быть выслано не только со стороны сайта Клуба по запросу авторизованного пользователя, но и просто по приглашению любого другого слэк-пользователя, даже если у приглашаемого нет аккаунта в MODX-Клубе.

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


А если пользователь был найден и привязан, предлагается пройти по специальной ссылке, чтобы завершить интеграцию.


Перейдя по ссылке, пользователь сразу авторизовывается (даже если не был авторизован) и перебрасывается на слэк страницу, чтобы предоставить доступ.


В свою очередь мне приходит информация о регистрации нового пользователя.




3. Теперь комментарии, публикуемые на сайте Клуба (обычные комментарии) автоматически ретранслируются в слэк. То есть вот я, к примеру, отвечаю на сайте:


И этот же комментарий автоматически публикуется в слэк:


При чем, если у MODX-пользователя есть слэк-профиль, то комментарий будет опубликован от его имени. Если нет, то от имени сервиса.

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

То же самое касается и уведомлений о новых топиках.

4. Добавлена возможность публиковать комментарии на сайт Клуба прям из слэка. Правда, эта функция не очень удобная, так как надо вручную указывать ID топика, куда должен комментарий отправиться, или ID комментария, в ответ на который публикуется комментарий, но в целом все равно годная фишка. Формат такой (пример):
/reply К1000 текст комментария
Здесь К — префикс (Комментарий), а 1000 — это ID комментария.
Если ID комментария верный, то будет комментарий опубликован в ответ именно на этот комментарий.
А если комментарий надо просто в топик добавить, то пишем то же самое, только вместо К будет Т, то есть /reply T100 Текст сообщения.

При чем здесь есть интерактивность. К примеру, можно получить уведомление, в случае ошибки.



Вот здесь это ответ от нашего сервера, а не системное сообщение слэка.

Как видите, это гораздо больше, чем просто очередная чателка.

А теперь немного лирики (в том числе почему я считаю, что это начало чего-то нового, особенного).

Во-первых, благодаря более тесному знакомству со слэком, я думаю почти полностью отказываться от каких-то редакт-интерфейсов на самом сайте. Зачем они нужны? В слэке офигеннейший редактор, позволяющий топики писать, вставлять различные медиа-объекты, форматирование кода и т.д. и т.п. редактор комментариев тоже сильный. И в нем же есть события на создание, редактирование, удаление и т.п. этих топиков и комментариев. Все, что происходит в слэке, можно отловить на стороне сайта. Написали там пост, нажал кнопочку «Публиковать» — все, топик репостнулся на сайт.
То же самое касается и редактирования профилей — там и аватарку загрузить можно, и контактные данные всякие указать, и прочую информацию. И опять-таки, все эти изменения можно получать на стороне сайта.

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

И вот еще кейс: пришел человек, задал вопрос. Я ему помог. А потом я взял эту переписку и тут же оформил в отдельный пост и закрепил в этом же канале.


А потом решил пойти еще дальше, создал канал #modxsmarty и расшарил эту заметку туда:


Теперь его можно будет при желании найти. И что особенно приятно, такие заметки можно отдельно комментировать.

Позже еще сделаю тематическую ретрансляцию таких заметок отдельными топиками на сам сайт.

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


Но не хватало интерфейсов для управления балансами. И вот сейчас я как раз планирую это поправить с помощью слека. Можно будет управлять балансом через личные сообщения. К примеру, можно будет выполнять перевод другому пользователю, написав в личку /pay +200 комментарий к платежу. Можно будет так же запрашивать оплату. Там же есть кнопки и т.п. Таким образом планируем активировать механизм платной мелкой помощи как минимум, типа поощрение за полезный ответ.

А еще, есть идея сделать виджеты ретрансляции каналов. Это мы планируем в течение месяца сделать. Каждый сможет на своем сайте специально для себя слэк-виджет влепить, хотя бы что бы просто видеть кто что пишет именно тогда, когда занимается своим сайтом.

Более масштабная идея в этом плане: объединение нескольких каналов в один. К примеру, я планирую себе ретранслировать и из модстора сообщения, и из официального слэека, и еще откуда-нибудь. А можно ведь и репостинг настройить, и публикацию объявлений сразу в несколько каналов. К примеру, не редко бывает так, что человек идет писать свой вопрос-топик и здесь, и у нас, и на modx.ru (и может еще куда-нибудь), просто чтобы увеличить шанс, что ему ответят хоть где-нибудь. А тут представьте возможность из одного места отправить сообщение-вопрос, который увидят сразу в нескольких основных сообществах, да еще и получить уведомление, где бы на него не ответили?

Короче, у меня мозг взрывается от возможностей))) Жаль, что приходится иногда спать…
21 december 2016, 03:30    Николай Ланец   G+  
0    319 +8

Comments (7)

  1. Дмитрий 21 december 2016, 11:09 # +3
    Действительно, очень интересная штуковина получается!
    Жаль, что пока не возникает задач, куда можно было бы такое вставить.
    1. Николай Ланец 21 december 2016, 17:12 # -1
      А у нас сразу несколько проектов есть, куда плотно такой функционал нужен.
      К слову, вот здесь есть id.modx.pro (который используется и на сообщество, и на модстор, и на модхост). Вот можно было бы здесь пользователям выводить информацию по состоянию их серверов, а так же дать консольные команды типа /reboot, "/site add hostname" и т.п. По-моему прикольно получилось бы :)
    2. Николай Ланец 21 december 2016, 22:58 # -1
      Вот, читаю слэк-канал modx.com прям на сайте Клуба.


      Кстати, для этого вообще не надо никаких доступов запрашивать, достаточно иметь аккаунт там.
      1. but1head 22 december 2016, 00:38 # 0
        А зачем это надо? Если можно со слэка читать, да и темболее там сидишь
        1. Николай Ланец 22 december 2016, 00:59 # 0
          1. Может чтобы вот такого не было: joxi.ru/zAN0Z8jhBlM9om
          2. Чтобы читать только тогда, когда готов это читать.
          3. Мне это надо. Показываю кейс. Если кому-то не надо, это его личное дело.
          1. but1head 22 december 2016, 01:11 # 0
            Грубо.
            1. В слэке ж вкладки есть, я так и не понял смысл внедрения на сайт клуба yadi.sk/i/4DUwo5p834LSCh
            2. Открыл слэк — почитал
            3. Кейс чтоб кейс. Теперь понял что мне это не надо и это мое лично дело )
            1. Николай Ланец 22 december 2016, 01:49 # 0
              Вкладки — это в приложении.А в браузере вот такое: joxi.ru/DmBXep0uwN7GOA
              1. Я не люблю ставить лишние приложения.
              2. Я на сайт могу заходить с разных компьютеров, и не всегда со своих.
      You need to login to create comments.