Страница 1 из 2

SLACK решение для мгновенных уведомлений

Добавлено: Ср авг 22, 2018 6:57 am
neromih
Предыстория.

* * *
Умный дом уже настроен, управляет нагрузками, охраняет дом и т.д.
Для уведомлений (мгновенных) был использован Телеграм. Хорошая штука с возможностью как получать уведомления, так и отправлять на сервер ту или иную команду. Но шло время, законодательство менялось и Телеграм стал жертвой законов. И в один прекрасный момент сервер перестал отвечать на запросы и отправлять сообщения в Телеграм. И начались муки в прикручивание xmpp, irc и т.д. к Мажардому. В первое время было интересно поднимать и настраивать у себя свои сервера этих по сути чатов, но дело по интеграции в систему Мажардом не продвинулось. Большим минусом было отсутствие нормальных клиентов. И пришлось все же отказаться от настройки своего сервера сообщений и использовать сторонний ресурс. К тому времени управление через мессенджер мне стало не нужно, и идея стала только в том что бы прикрутить к Мажордомо нотификацию и желательно мгновенную. Мне не нужны были сообщения о том что сейчас 10-00 или что свет включен, нужны были сообщения об критических ситуациях таких как: проникновение в помещение, возникновение протечки, отсутствие электроэнергии и т.д.
Долго шел поиск нужного мне продукта, и тут был найден SLACK!
* * *

Что это есть?

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

Почему именно Slack?

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

Начало=инструкция

Регистрация. Бот

1. Регистрируемся
https://api.slack.com/
2. Переходим и создаем новое приложение
https://api.slack.com/apps/new

AppName — название приложения.
Short description — краткое описание приложения.
Describe what your app does on Slack — полное описание приложения.
Link to clear instructions on how to install your Slack app.
Link to support for your Slack app — две ссылки на страницы с описанием установки и использования данного приложения.


На вкладке Basic Information выбираем Add features and functionality, далее Incoming Webhooks, и включаем Activate Incoming Webhooks

На странице Activate Incoming Webhooks на нужно Webhook URLs for Your Workspace

Webhook имеет формат:
https://hooks.slack.com/services/T00000 ... XXXXXXXXXX


Отправка оповещения на Slack из Мажордомо

Скрипт отправки прост, и его можно прикрутить к любому событию, нагрузка при выполнении на сервер минимальна.

Собственно сам скрипт:

Код: Выделить всё

  define('SLACK_WEBHOOK', 'https://hooks.slack.com/services/T00000000/B00000000/XXXXXXXXXXXXXXXXXXXXXXXX'); // это не забудьте поменять на свое
  $message = array('payload' => json_encode(array('text' => 'Проверка'))); // 'text' => 'Проверка' - текст сообщения, в данном случае нам придет - Проверка

  $c = curl_init(SLACK_WEBHOOK);
  curl_setopt($c, CURLOPT_SSL_VERIFYPEER, false);
  curl_setopt($c, CURLOPT_POST, true);
  curl_setopt($c, CURLOPT_POSTFIELDS, $message);
  curl_exec($c);
  curl_close($c);
  
Буквально пара строк :) И у нас появятся сообщения от сервера о важных для нас событиях.

https://majordomo.smartliving.ru/forum/ ... f=5&t=5651 реализовано в модуль directman66 за что ему большое спасибо!

Re: SLACK решение для мгновенных уведомлений

Добавлено: Ср авг 22, 2018 7:46 am
directman66
В приведенном примере Slack используется только для отправки уведомлений, поэтому не особо отличается от имеющихся notify.events (в нём есть интеграция VIBER) и PushBullet. Главное приемущество телеграмм - возможность отправки медиа-контента и получения сообщений в обратную сторону (от клиента в МД).

Так как slack - это корпоративный месенджер, вроде есть возможность интеграции и в обратном направлении.

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

Re: SLACK решение для мгновенных уведомлений

Добавлено: Ср авг 22, 2018 8:13 am
neromih
directman66 писал(а):
Ср авг 22, 2018 7:46 am
В приведенном примере Slack используется только для отправки уведомлений, поэтому не особо отличается от имеющихся notify.events (в нём есть интеграция VIBER) и PushBullet. Главное приемущество телеграмм - возможность отправки медиа-контента и получения сообщений в обратную сторону (от клиента в МД).

Так как slack - это корпоративный месенджер, вроде есть возможность интеграции и в обратном направлении.

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

PushBullet пропускает довольно много сообщений, в одно время у меня перестал работать.

Ну и главное простота скрипта.

Модуль было бы хорошо, сам не смогу сделать в конструкторе )))

Re: SLACK решение для мгновенных уведомлений

Добавлено: Ср авг 22, 2018 8:15 am
directman66
Ребята, посмотрел API - это же находка. Столько всего можно реализовать. Пошел писать модуль )

Re: SLACK решение для мгновенных уведомлений

Добавлено: Ср авг 22, 2018 8:17 am
neromih
directman66 писал(а):
Ср авг 22, 2018 8:15 am
Ребята, посмотрел API - это же находка. Столько всего можно реализовать.
Местами он даже лучше viber whatsupp
Неужели я открыл что то стоящие ))))

Re: SLACK решение для мгновенных уведомлений

Добавлено: Ср авг 22, 2018 11:16 pm
directman66
Всем доброй ночи. Slack бета версия модуля готова, можно подписываться на события, отправлять произвольные сообщения и картинки. Инструкция в хелпе к модулю. Модуль опубликован в маркете.

Re: SLACK решение для мгновенных уведомлений

Добавлено: Чт авг 23, 2018 7:52 am
directman66
Локальные картинки пока почему-то не отправляются. Только если нужную картинку сохранить на своем серваке и отправлять общедоступной ссылкой. Слак отличное хранилище снапшотов с видеокамер )

Re: SLACK решение для мгновенных уведомлений

Добавлено: Чт авг 23, 2018 10:03 am
neromih
directman66 писал(а):
Ср авг 22, 2018 11:16 pm
Всем доброй ночи. Slack бета версия модуля готова, можно подписываться на события, отправлять произвольные сообщения и картинки. Инструкция в хелпе к модулю. Модуль опубликован в маркете.
Очень оперативно! Спасибо!

Re: SLACK решение для мгновенных уведомлений

Добавлено: Чт авг 23, 2018 10:18 am
neromih
Не совсем уверен что он нужен
https://api.slack.com/custom-integrations/legacy-tokens
В настройках.
Для сообщений достаточно webhook

Re: SLACK решение для мгновенных уведомлений

Добавлено: Чт авг 23, 2018 11:11 am
directman66
token я планирую использовать для подписки на сообщения. Пока изучаю api https://api.slack.com/events-api. Собственно это и есть главное приемущество шлака над другими информерами.