Уведомления для администратора Битрикс
Push уведомления для администратора- удобно, быстро. Не заметить трудно.
#ТехнологииИногда приходится решать самые оригинальные проблемы клиентов. Например она может звучать так: "Форма заказа звонка отправляет уведомление на почту, но мы редко на неё заходим. нам необходимо оперативно получать уведомления". Причем в итоге они приходили на все устройства, как на телефон, так и на ПК.
В ходе обсуждения задача мы выяснили 2 возможных варианта: 1 sms на телефон, 2-й это знаменитые Push уведомления.
Далее, пошел процесс кодинга и встраивания в форму заказа звонка.
Была разработана страница, с которой пользователь мог подписаться на рассылку звонков с кнопочкой . Конечно же можно было сделать не страницу, а модуль, и делать такую подписку из админ панели. Но бюджет у заказчика не резиновый.
Далее были встроены всплывающие уведомления на сайт. Т.к технология push предусматривает отлов отрытого сайта. То надо было на открытом сайте показать уведомления на сайте. Если же сайт не активен(спрятан среди вкладок), то показывается push уведомление.
На рисунке показана всплывающее окно, которое видно при активном сайте . Это же окно показывается как на фронте сайта, так и в административной панели.
Но вот беда. Пользователь пропустил push уведомление, которое всплыло справа. Но оно отобразиться в windows рядом с часами. Нажав на него всегда можно посмотреть весь список.
Если рассматривать чисто технические вопросы. Для рассылки использовался сервер сообщений Firebase Cloud Messaging от Google и его библиотека . Предварительно нам надо зарегистрироваться и получить все необходимые ключи.
Токены, что к нам приходили отравляли и сохраняли на сервере в отдельный инфоблок токенов.
var url = '/push/save_token.php'; // адрес скрипта на сервере который сохраняет ID устройства
$.post(url, {
token: currentToken
});
Сформировал предварительно определенный набор полей в инфоблоке.
$arFindElSelectFields = array( 'ID', 'PROPERTY_P_TOKEN', 'PROPERTY_P_USER', 'PROPERTY_P_DEVICE', );
Массив данных которые отправляются curlом на сервер пушь уведомлений https://fcm.googleapis.com/fcm/send
$request_body = [
'notification' => [
'title' => 'Перезвоните мне',
'body' => $phone_push.' '.$name_push,
'icon' => 'https://test.ru/img/logo.png',
'click_action' => 'https://test.ru',
],
'tag'=>'testpush'.date('H-i'),
'time_to_live'=>1000,//секунд
'registration_ids'=>$MASS_TOKEN
];
Итого работы был: довольный клиент, и довольные разработчики, т.к задача была на редкость интересная.
Приблизительное время выполнения задач: 10 часов+ тестирование.