Возможности модуля
Модуль предназначен для отправки Push уведомлений в мобильное приложение и браузерах. Отправка производится с помощью firebase cloud messaging. Клиент реализован на ServiceWorker, поэтому будет работать только на домене с валидным SSL (HTTPS) сертификатом. Пуши в Firefox работают без ключа.
Установка модуля
Чтобы Push ратали нужно прописать в config.pl
$conf{PUSH_ENABLED}=1;
Создание проекта firebase
Переходим по ссылке https://console.firebase.google.com/
После создания переходим в настройки проекта
После этого переходим в настройки Cloud Messaging, а также переходим в настройки API.
После перехода в настройки API просто включаем протокол
Переходим назад в настройки Cloud Messaging и копируем Server Key и прописываем в config.pl
$conf{FIREBASE_SERVER_KEY}="Ваш ключ";
Настройка WebPush
Для настройки Web Push необходимо перейти в настройки Cloud Messaging и создать пару ключей для WebPush
После создание копируем публичный ключ и прописасываем в config.pl
$conf{FIREBASE_VAPID_KEY}="Ваш public key";
Создаем Web приложение
Копируем firebaseConfig и вносим в конфигурации на биллинге
В config.pl
$conf{FIREBASE_CONFIG} = { apiKey => "Sample", authDomain => "Sample", projectId => "Sample", storageBucket => "Sample", messagingSenderId => "Sample", appId => "Sample", measurementId => "Sample" };
Копируем файл
cd /usr/abills/cgi-bin/ cp ../misc/firebase/firebase-config.js firebase-config.js
Вставляем настройки созданного firebaseConfig
var firebaseConfig = { apiKey: "Sample", authDomain: "Sample", projectId: "Sample", storageBucket: "Sample", messagingSenderId: "Sample", appId: "Sample", measurementId: "Sample" };
Для разработчиков
Пример использования:
# Подключаем модуль use Abills::Sender::Core; my $Sender = Abills::Sender::Core->new($db, $admin, \%conf, { SENDER_TYPE => 'Push' }); # Отправляем сообщение my $request_sent = $Sender->send_message({ UID => 2, TITLE => 'ABillS Push', MESSAGE => 'Hello, world sended via Push message' }); # $request_sent == 1, если запрос к сервису Push завершился успешно. (но это не гарантирует доставку)