我一直在this resource中关注该文档,以便将推送通知发送到带有效负载的浏览器。 (Chrome 53.0.2785.116 m)。
我正在使用Nodejs Crypto库生成密钥,它们都通过了Google员工创建的the verification test。
当我不包含加密的有效负载时,我可以发送和接收推送通知。只要我将'raw_data'标记与加密的有效负载相关联,浏览器就不再接收推送通知(尽管Curl仍然会返回'success(1)'响应)
以下是包含和不包含有效负载的Curl消息。
没有有效负载 -
curl --header "TTL:86400"
--header "Authorization: key=API_KEY"
--header "Encryption: salt=E2oUmcFWbb41wk5DuTbuoA"
--header "Crypto-Key: dh=SERVER_PUBLIC_KEY"
--header "Content-Encoding: aesgcm"
--header "Content-Type: application/json"
https://android.googleapis.com/gcm/send -d
"{\"registration_ids\":[\"CLIENT_KEY\"],\"content_available\":true}"
--insecure
有效负载 -
curl --header "TTL:86400"
--header "Authorization: key=API_KEY"
--header "Encryption: salt=E2oUmcFWbb41wk5DuTbuoA"
--header "Crypto-Key: dh=SERVER_PUBLIC_KEY"
--header "Content-Encoding: aesgcm"
--header "Content-Type: application/json"
https://android.googleapis.com/gcm/send -d
"{\"registration_ids\":[\"CLIENT_KEY\"],\"raw_data\":\"UnGSxqxfy9yDwPgCVeXJibQyPX8Hz28\",\"content_available\":true}"
--insecure
两者都返回成功消息
{"multicast_id":9197002368280649941,
"success":1,"failure":0,
"canonical_ids":0,
"results":[{"message_id":"0:1474618927798802%bc86b90cf9fd7ecd"}]}
但浏览器未收到后者。
我们现在进入头部刮伤的第四天。任何帮助都会很棒。