Как проверить FCM с помощью Postman / curl с Angular 8 - PullRequest
0 голосов
/ 24 октября 2019

Я пытаюсь настроить уведомление для своего веб-приложения (Angular 8) с помощью веб-push.

Я уже использовал Angular Service Worker для успешной регистрации конечной точки пользователя, p256dh и auth. Он уже есть в базе данных.

Мой бэкэнд - Laravel, однако, после настройки всего, что он не работал. Поэтому я пытаюсь настроить «сырой» запрос с почтальоном, чтобы проверить, работает ли само уведомление перед устранением неполадок бэкэнда.

(Учебное пособие, которое я выполнил для внешнего интерфейса: https://blog.angular -university.io/ angular-push-notifications / )

Вот json для почтальона:

{
   "to": "<HERE GOES THE USERS p256dh>",
   "notification": {
    "body": "Hello",
    "title": "This is test message."
   }
}

URL: ~~ POST ~~

Со следующими заголовками:

Authorization: key=4uAH6X9MLTQWYWuDuUjBDk5P8OHPmFLWF9FZJeDAZMo (I've tried users auth code and also my VAPID_PRIVATE_KEY
Content-Type: application/Json

И я получил следующий ответ:

sender is not authenticated.

РЕДАКТИРОВАТЬ: Попробовал: https://fcm.googleapis.com/fcm/send и получил:

Invalid (legacy) Server-key delivered or Sender is not authorized to perform request.

Что такоеЯ делаю не так? Ожидаемым результатом будет уведомление даже при закрытом браузере.

(я тестирую o locahost и работаю через angular-http-сервер, созданный с помощью ng build --prod)

Ответы [ 2 ]

1 голос
/ 24 октября 2019

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

Чтобы это исправить, используйте ключ сервера, если он у вас уже есть, или нажмите «Добавить ключ сервера», чтобы создать его, и используйте его вместо ключа устаревшего сервера при авторизации. header.

См. изображение для справки.

0 голосов
/ 24 октября 2019

Я уже тестировал с помощью npms send-messages:

  web-push send-notification --endpoint=<url> [--key=<browser key>] [--auth=<auth secret>] [--payload=<message>] [--ttl=<seconds>] [--vapid-subject=<vapid subject>] [--vapid-pubkey=<public key url base64>] [--vapid-pvtkey=<private key url base64>] 

Теперь проблема с бэкендом, которую я постараюсь исправить.

...