ウェブプッシュ通知を送信するための実例を実行できました - プッシュ通知のためのユーザー登録、エンドポイント取得、browser
鍵の生成サブスクリプションオブジェクト - p256dh
とauth
サーバー側ではVAPID
の鍵を生成します。 したがって、これらのすべてを使ってをweb-push
nodejsパッケージに、また、ペイロードを渡しています。ChromeとOperaにプッシュ通知を送信しようとすると、WebPushErrorとUnauthorizedRegistrationが返ってきます。
Firefoxで - 私はペイロードで通知を受け取ります。
ChromeとOperaでは、私はWebPushError: Received unexpected response code
、さらにはUnauthorizedRegistration
とError 400
となります。
私はものを送信するために使用しているサーバー側のコードは次のとおりです。
// 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);
});
私もmanifest.json
ファイルにgcm_sender_id
ようMY_GCM_SENDER_IDを入れています。私はhttps://console.firebase.google.com/
からそれを取った - プロジェクトを作成し、Sender ID
をSettings - Cloud Messaging
から得た。これについての説明はこちらをご覧ください: https://firebase.google.com/docs/cloud-messaging/js/client
だから私は間違っていますか?
を防ぐために、サービスワーカーを更新する
Google tutorial
に従ってください? ...私はドメインが公開されている公開サーバーを持っていますが、そこに展開する前にすべてをローカルでテストしたかったのです。 –