name: "WebPushError",
message: "Received unexpected response code",
statusCode: 400,
headers:
{ "content-type": "text/html; charset=UTF-8",
date: "Fri, 24 Aug 2018 11:16:39 GMT",
expires: "Fri, 24 Aug 2018 11:16:39 GMT",
"cache-control": "private, max-age=0",
"x-content-type-options": "nosniff",
"x-frame-options": "SAMEORIGIN",
"x-xss-protection": "1; mode=block",
server: "GSE",
"alt-svc": "quic=":443"; ma=2592000; v="44,43,39,35"",
"accept-ranges": "none",
vary: "Accept-Encoding",
connection: "close" },
body: "<HTML>\n<HEAD>\n<TITLE>UnauthorizedRegistration</TITLE>\n</HEAD>\n<BODY BGCOLOR="-sharpFFFFFF" TEXT="-sharp000000">\n<H1>UnauthorizedRegistration</H1>\n<H2>Error 400</H2>\n</BODY>\n</HTML>\n",
endpoint: "https://fcm.googleapis.com/fcm/send/cMYLTEcm8xg:APA91bGz2y5mBVOUTi4T57Lbcq_re9IMHdnuq7tVXPfQ0IHuGtKv5Y_HNRAmglqjsvFNLisTvjRqRlmG3oi5Fu_lEnUp3nB9inN2xKRs_Wh92hZA0X_70P7h5BnhmPG15ZyrjIKMbpCg"
}
Source
server.js
app.post("/register", function(req, res) {
var endpoint = req.body.endpoint
// var key = req.body.key
// var authSecret = req.body.authSecret
// console.log(saveSubscriptionToDatabase)
// //
// saveRegistrationDetails(endpoint, key, authSecret)
// console.log(11)
const pushSubscription = {
endpoint: req.body.endpoint,
keys: {
auth: req.body.authSecret,
p256dh: req.body.key
}
}
var body = "thank u for registering"
var iconUrl = "http://localhost:3001/icon.png"
console.log(pushSubscription)
//
webpush.sendNotification(pushSubscription,
new Buffer(JSON.stringify({
msg: body,
url: "http://localhost:3001/pwa",
icon: iconUrl
}), "utf8")
).then( response => {
res.sendStatus(201)
}).catch(err => {
console.log(err)
})
})
if("serviceWorker" in navigator) {
navigator.serviceWorker.register("/sw.js")
.then(function(registration) {
return registration.pushManager.getSubscription() //
.then( subscription => {
if(subscription) return null
return registration.pushManager.subscribe({
userVisibleOnly: true,
applicationServerKey: urlBase64ToUint8Array(vapidPublicKey)
})
.then( subscription => {
console.log(subscription)
var rawKey = subscription.getKey ? subscription.getKey("p256dh") : ""
var key = rawKey ? btoa(String.fromCharCode.apply(null, new Uint8Array(rawKey))) : ""
var rawAuthSecret = subscription.getKey ? subscription.getKey("auth") : ""
var authSecret = rawAuthSecret ? btoa(String.fromCharCode.apply(null, new Uint8Array(rawAuthSecret))) : ""
//
return fetch("/register", {
method: "post",
headers: new Headers({
"content-type": "application/json"
}),
body: JSON.stringify({
endpoint: subscription.endpoint,
key: key,
authSecret: authSecret
})
})
})
.catch( err => {
console.log("",err)
// console.log("!")
})
})
})
.catch(function(err) {
console.log("err", err)
})
}