Просмотр Исходного

Абонентам можно рассылать PUSH-уведомления. Для настройки Вам потребуется зарегистрироваться в сервисе Google Firebase.

{toc}

h1. Настройки Firebase

h2. Создание проекта в Firebase

# Авторизуйтесь в [консоли Firebase|https://console.firebase.google.com/], используя [аккаунт Google|https://accounts.google.com/]
# Создать новый проект \\ \\
!push_firebase_project_create.png|border=0,width=400! \\ \\
# Укажите название проекта, лучше на латинице \\ \\
!push_firebase_project_name.png|border=0,width=400!

{info}На следующем шаге предложат подключить Google Аналитику - это *не обязательно* для работы PUSH{info}

h2. Создание приложения в проекте Firebase

# На главной странице проекта нажмите кнопку "*Добавить веб-приложение*" \\ \\
!push_firebase_app_add.png|border=0,width=400! \\ \\
# Укажите псевдоним приложения, например "_push-messages_" \\ \\
!push_firebase_app_alias.png|border=0,width=400! \\ \\
# После регистрации приложения Вам будет показан код, внутри которого будет блок с токенами и ключами (выделен красным на скриншоте). Скопируйте этот блок куда-либо, его содержимое понадобится позже. \\ \\
!push_firebase_app_tokens_and_keys.png|border=0,width=400!

h2. Создание ключей шифрования

# Вернитесь в консоль Firebase и перейдите в настройки проекта \\ \\
!push_firebase_project_settings.png|border=0,width=400! \\ \\
# Перейдите на вкладку "*Cloud Messaging*" \\ \\
!push_firebase_cloud_messaging.png|border=0,width=400! \\ \\
# Требуется переключиться с *Firebase Cloud Messaging API (V1)* на *Cloud Messaging API (Legacy)*
!push2.png|border=0,width=600!
# Нажмите кнопку "*Создать пару ключей*" внизу страницы \\ \\
!push_firebase_web_push_create_keys.png|border=0,width=400! \\ \\
# Скопируйте созданный публичный ключ, необходимо указать в настройках биллинга в поле "Публичный ключ Vapid" \\ \\
!push_firebase_pub_key.png|border=0,width=400!

h1. Настройка биллинга

h2. Настройка msgd в биллинге

# В биллинге перейдите в раздел [Настройки (в файле)|CarbonBilling:Настройки (в файле)] -> *Настройка демона отправки сообщений*;
# Заполните поля значениями, полученными при создании приложения и создании ключей шифрования:
#* Публичный ключ Vapid => key pair (пара ключей);
#* ID приложения => appId
#* ID отправителя => messagingSenderId
#* ID проекта => projectId
#* Уведомления PUSH => включите опцию
#* "Ключ API Firebase" => server key (находится во вкладке Cloud Messaging в Firebase.)
# В [настройках шаблонов сообщений|Система отправки сообщений (sms,email и тд). Шаблоны сообщений] выберите способ отправки "*Web Push*" у нужных шаблонов или создайте новые с этим типом

h2. Общие настройки ЛК

# Для работы PUSH-уведомлений в ЛК должен быть [установлен SSL-сертификат|Установка SSL-сертификата на локальный сайт]
# Отредактируйте файл */app/asr_cabinet/var/wordpress/firebase-messaging-sw.js* - в него нужно добавить значение _messagingSenderId_, полученное при создании проекта Firebase \\ \\
!push_cb5_settings_js.png|border=0,width=400!

h2. Решение проблем

h3. В кабинете нет предложения подписаться на уведомления

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

Ниже мы привели комментарий нашего отдела разработки, который поможет Вашему веб-мастеру решить проблему:

{quote}
Шаблон личного кабинета использует JavaScript, чтобы помещать всплывающие сообщения под шапкой сайта. В числе этих сообщений так же находится и предложение для абонента подписаться на PUSH-уведомления. Если Вы используете собственную вёрстку и/или шаблон кабинета и не видите кнопку "Подписаться" в кабинете после включения PUSH-уведомлений, то нужно убедиться, что вы используете те же CSS-классы, что и оригинальный шаблон, поскольку к этим CSS-классам привязывается логика: шапка сайта должна иметь CSS-класс "carbon-header" и размещаться внутри блока с классом "container", т.е. внутри шаблона должен существовать селектор ".container > .carbon_header"{quote}

h3. Дополнительные настройки
Если сообщения не отправляются, сделайте следующие настройки:

# В файле UserInfoSidebar.php
{code}
/app/asr_cabinet/usr/local/lib/cabinet_modules/modules/tpls/UserInfoSidebar.php
{code}
Замените строку:
{code}
apiKey: "<?php echo $data['push']['api_key']; ?>",
{code}
На строку:
{code}
apiKey: "Ключ API для веб-приложения",
{code}
В кавычках Ключ API для веб-приложения из раздела "Общие настройки" в Firebase.

!key02.png|border=1!


!key03.png|border=1!

h3. Отключить push уведомление
Отключить push уведомление конкретному абоненту можно стерев push токен по [API|API REST v2.0]. Запрос удаляет push токен у абонента с id 101.
{code}
curl -XPOST -d 'method1=objects.get&arg1={"id":"101"}&method2=set&arg2={"push_token":""}&method3=save&arg3={}' http://169.254.80.82:8082/rest_api/v2/Abonents/ -D -
{code}