google gcm raw_data (шифрование полезной нагрузки), push-событие не получено

Мне нужна помощь, потому что я никогда не получаю push-событие в моем сервисворкере после шифрования полезной нагрузки.

  1. Первый случай без зашифрованной полезной нагрузки

В этом случае я получаю push-событие в сервис-воркере:

  • Запрос:
curl -s --header "Authorization: key=MY_KEY" --header "Content-Type: application/json" --header "TTL:86400" https://android.googleapis.com/gcm/send -d "{\"registration_ids\":[\"elmll0-ynBY:APA91bFe7xBGti92H4yrWo2bJT6aMY3IKo3j54yRGtS0NNQYpkqmI5f14EKSPz6_GCEs2PaX6zCD3Lvk-2JRABQVZ3u350bsy0uisxRL0EoZnVHsqVMo7YNojkvQX7o49a61pCmZEfSi\"],\"delay_while_idle\":false,\"collapse_key\":\"hipush-notification\",\"time_to_live\":86400}"
  • Гугл ответ такой:
{"multicast_id":5772871775830750210,"success":1,"failure":0,"canonical_ids":0,"results":[{"message_id":"0:1465913797471899%f4d428f3bf364ddd"}]}
  1. Второй тест с зашифрованными raw_data

Я никогда не получаю push-событие: - Запрос:

curl -s --header "Authorization: key=MY_KEY" --header "Content-Type: application/json" --header "TTL:86400" --header "Encryption: salt=KYw1fpU-Dg4w1qFcrPY3rQ" --header "Crypto-Key: dh=BOwb4OiwboYRrbhhXh056xFZ8pk8kfQR27Gmu3EdYPG9DkLoKRqA_d4Z_TbT2VYMfHVkGS-dY45rZ8tAimqSWrk" --header "Content-Encoding:aesgcm" https://android.googleapis.com/gcm/send --header "Content-Length: 363" -d "{\"registration_ids\":[\"elmll0-ynBY:APA91bFe7xBGti92H4yrWo2bJT6aMY3IKo3j54yRGtS0NNQYpkqmI5f14EKSPz6_GCEs2PaX6zCD3Lvk-2JRABQVZ3u350bsy0uisxRL0EoZnVHsqVMo7YNojkvQX7o49a61pCmZEfSi\"],\"delay_while_idle\":false,\"collapse_key\":\"hipush-notification\",\"time_to_live\":86400,\"raw_data\":\"rXJHqmhxmTde+297wtb3Tpj5Lq5C8cd2eYW5qTBoC3huGVTOPog6+I2Y6wQEYqP1QIAvUA0NFtYC7Zr\/iCR1sGcu\"}"
  • Гугл ответ такой:
 {"multicast_id":7840093467258640262,"success":1,"failure":0,"canonical_ids":0,"results":[{"message_id":"0:1465913901129815%f4d428f3bf364ddd"}]}

Я получил такой же ответ с успехом. Мой хром версии 51.

Может кто-нибудь объяснить мне, где моя ошибка?

С наилучшими пожеланиями,

Мехди


person Mehdi    schedule 15.06.2016    source источник


Ответы (1)


Какой язык вы используете? Вы можете использовать одну из библиотек здесь https://github.com/web-push-libs. (в настоящее время поддерживаются Node.js, PHP, Python, Java), которые уже решили проблему за вас.

person Marco Castelluccio    schedule 15.06.2016