I managed to run a working example for sending web push notifications - to subscribe a user to push notifications, get an endpoint, generate two browser keys from the subscription object - p256dh and auth . On the server side, I generate VAPID keys. So, with all this, I call sendNotification web-push Node.js, and also I sendNotification payload.
On Firefox - I get a notification with a payload.
In Chrome and Opera, I get WebPushError: Received unexpected response code and, what's more, UnauthorizedRegistration and Error 400 .
The server side code that I use to send stuff:
// import our web-push package .. var webPush = require('web-push'); webPush.setGCMAPIKey('MY_GCM_SENDER_ID'); // we generated the VAPID keys .. var vapidKeys = { "publicKey": "...", "privateKey": "..." }; // set our VAPID credentials .. webPush.setVapidDetails( 'mailto:{my email}', vapidKeys.publicKey, vapidKeys.privateKey ); var device_endpoint = "https://android.googleapis.com/gcm/send/..."; var device_key = "..."; var device_auth = "..."; /* * Sending the notification .. */ webPush.sendNotification( { endpoint: device_endpoint, keys: { p256dh: device_key, auth: device_auth } }, 'My payload', { TTL: 86400, // 24 hours .. } ) .then(function() { console.log('SUCCESS'); }) .catch(function(err) { console.log('Unsuccessful'); console.log(err); });
I also put MY_GCM_SENDER_ID as gcm_sender_id in the manifest.json file.
I took it from https://console.firebase.google.com/ - created a project and got a Sender ID in Sender ID Settings - Cloud Messaging .
I read the instructions for this here: https://firebase.google.com/docs/cloud-messaging/js/client
So ... Can anyone help determine what I'm doing wrong?
firebase web-push
pesho hristov
source share