Пуш-уведомления

Материал из NoDeny Plus
Перейти к: навигация, поиск
  • Заходим https://console.firebase.google.com
  • Нажимаем "Добавить проект"
  • Название проекта: NoDeny. Выбираем страну. Нажимаем "Создать проект"
  • Вверху слева рядом с Project Overview находится шестеренка (settings), нажимаем ее и выбираем "Настройки проекта"
  • Выбираем закладку "CLOUD MESSAGING"
  • С этой страницы нам необходимо перенести 2 параметра в настройки в админке NoDeny:
    • "Устаревший ключ сервера" в подраздел "Push notification" в параметр "API key"
    • "Идентификатор отправителя" в подраздел "Push notification" в параметр "Project number"
  • Создадим файл-манифест:
perl install.pl -x
  • Проверим, что создался файл-манифест:
cat /usr/local/nodeny/htdocs/manifest.json
  • На титульной странице админки нажимаем "Включить push-notification". Затем "Включить"
  • Если получаем ошибку, то открывает dev-консоль браузера и смотрим в чем проблема
  • Заходим в настройки администратора и смотрим, что учетная запись администратора связана с учетной записью в биллинге (параметр "Он же")
  • Также устанавливаем галку "Получение пуш-уведомления по сообщению от абонента"
  • Тестируем: отправляем сообщение из личного кабинета абонента
  • Запускаем в режиме подробной информации модуль ядра notifications:
perl /usr/local/nodeny/nokernel.pl -m=notifications -v
  • Через несколько секунд на экране вашего компьютера должно появиться всплывающее окно, сигнализирующее о том, что пришло событие. Кликните по этому окну

Если что-то не получается, обратите внимание на такие моменты:

  • Если вы что-то меняете в настройках, например ключ или id проекта, необходимо обязательно:
    • перезаписать манифест: perl install.pl -x
    • очистить таблицу notifications_users: truncate notifications_users;
    • зайти в настройки хрома (chrome://settings/content/notifications) и удалить оповещения для вашего сайта
    • заново подписаться на оповещения (пуш-уведомления) на титульной странице NoDeny

Если ничего не помогает, необходимо убедиться, что ключ валидный:

curl --header "Authorization:key=ваш_ключ" --header Content-Type:"application/json"  https://gcm-http.googleapis.com/gcm/send  -d "{\"registration_ids\":[\"ABC\"]}"

- это оправка некорректного сообщения, но это неважно, важно что ответит сервер. Если ошибку 401 - ключ неверен. Если сообщение, что не отправлено т.к. InvalidRegistration - отлично, ключ корректный.

Также необходимо убедиться, что вы использовали "Устаревший ключ сервера", а не "Ключ сервера".