首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Nodejs Web-push Chrome推送通知

Nodejs Web-push Chrome推送通知
EN

Stack Overflow用户
提问于 2017-01-17 14:55:18
回答 1查看 1.5K关注 0票数 0

尝试将消息从我的服务器推送到web客户端,使用webpush,在服务器上的Nodejs中。

代码语言:javascript
复制
webpush.sendNotification(body, 'Your Push Payload Text').then(console.log);

body是一个字符串,包含所需的参数,如下所示:https://github.com/web-push-libs/web-push

代码语言:javascript
复制
{"endpoint":"https://android.googleapis.com/gcm/send/eeXCuiNccV4:APA91bEC-ddg6Iy9OUjtDHzcjFd30cBM_6etyclYe63FrBP_UTCOA_oCwwDhrw-ILp1VqjdQD34X-G4WQ4xNUKnafTz4mGJZcppOsp-_HRNUHRgKXaAdppgClo2JsDAXZQjqxdGd0wq3","keys":{"p256dh":"BE3z-LbXeW65M6xdFhkhbFY9tj_re7RjEIUZDBPOslT1MqIG7-vaxHoUeZY3JOgJ_EaLa1eoifzNX3mno2PgCNc=","auth":"ZYov_VdiE2KZU65wpJWi8Q=="}}

获取此错误:

代码语言:javascript
复制
{ WebPushError: Received unexpected response code
12:42 AM
    at IncomingMessage.<anonymous> (/app/node_modules/web-push/src/web-push-lib.js:274:20)
12:42 AM
    at emitNone (events.js:91:20)
12:42 AM
    at IncomingMessage.emit (events.js:185:7)
12:42 AM
    at endReadableNT (_stream_readable.js:974:12)
12:42 AM
    at _combinedTickCallback (internal/process/next_tick.js:74:11)
12:42 AM
    at process._tickCallback (internal/process/next_tick.js:98:9)
12:42 AM
  name: 'WebPushError',
12:42 AM
  message: 'Received unexpected response code',
12:42 AM
  statusCode: 400,
12:42 AM
  headers: 
12:42 AM
   { 'content-type': 'text/html; charset=UTF-8',
12:42 AM
     date: 'Tue, 17 Jan 2017 06:42:38 GMT',
12:42 AM
     expires: 'Tue, 17 Jan 2017 06:42:38 GMT',
12:42 AM
     'cache-control': 'private, max-age=0',
12:42 AM
     'x-content-type-options': 'nosniff',
12:42 AM
     'x-frame-options': 'SAMEORIGIN',
12:42 AM
     'x-xss-protection': '1; mode=block',
12:42 AM
     server: 'GSE',
12:42 AM
     'alt-svc': 'quic=":443"; ma=2592000; v="35,34"',
12:42 AM
     'accept-ranges': 'none',
12:42 AM
     vary: 'Accept-Encoding',
12:42 AM
     connection: 'close' },
12:42 AM
  body: '<HTML>\n<HEAD>\n<TITLE>UnauthorizedRegistration</TITLE>\n</HEAD>\n<BODY BGCOLOR="#FFFFFF" TEXT="#000000">\n<H1>UnauthorizedRegistration</H1>\n<H2>Error 400</H2>\n</BODY>\n</HTML>\n',
12:42 AM
  endpoint: 'https://android.googleapis.com/gcm/send/eeXCuiNccV4:APA91bEC-ddg6Iy9OUjtDHzcjFd30cBM_6etyclYe63FrBP_UTCOA_oCwwDhrw-ILp1VqjdQD34X-G4WQ4xNUKnafTz4mGJZcppOsp-_HRNUHRgKXaAdppgClo2JsDAXZQjqxdGd0wq3' }
EN

回答 1

Stack Overflow用户

发布于 2018-01-13 19:25:51

您收到一个400错误的请求,请确保您的VAPID密钥匹配。

服务器应该同时持有公钥和私钥,而应用程序应该只持有公钥。

确保只生成一次密钥对。

您可以使用此页面生成密钥对:https://web-push-codelab.glitch.me/

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/41690719

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档