«ошибка»: «Несоответствие отправленного идентификатора» при попытке отправить веб-push-уведомление

#curl #google-cloud-messaging #firebase-cloud-messaging #web-push #progressive-web-apps

#curl #google-облако-обмен сообщениями #firebase-облако-обмен сообщениями #веб-push #progressive-веб-приложения

Вопрос:

Я следую этому руководству, чтобы узнать о реализации веб-push. Я следовал руководству, пока не столкнулся с проблемой при использовании curl для отправки уведомления:

 curl --header "Authorization: key=<PUBLIC_API_KEY>" --header "Content-Type: application/json" https://android.googleapis.com/gcm/send -d "{"registration_ids":["<SUBSCRIPTION_ID>"]}"
  

Я изменил ключ API и идентификатор подписки на свой ключ обмена сообщениями Firebase Cloud и идентификатор подписки, сгенерированный, когда уведомления принимаются в браузере.

Тем не менее я получаю эту ошибку при выполнении curl:

{«multicast_id»:8346257587601342490,»success»:0,»failure»:1,»canonical_ids»:0,»results»:[{«error»:»MismatchSenderId»}]}

Я обнаружил, что эта ошибка связана с push-уведомлениями Android, но не с веб-push, поэтому другие ответы не были полезны для моей проблемы.

Кто-нибудь сталкивался с этой проблемой? Чего мне не хватает?

Ответ №1:

Я тоже испытывал то же самое. Даже после повторной проверки дюжины раз, что манифест был правильно выписан и установлен и что API_KEY и registration_ids верны. Но теперь я заметил, что проблема заключалась в том, что я не копировал всю URL-ссылку целиком. Пример, если ваш URL-адрес конечной точки: endpoint: https://android.googleapis.com/gcm/send/c_hMYQ0IJEg:APA91bHugFROB5EKLlwFKPjc7lRs_YZ7nBV655oftqdKPtzsmoz149d1BLVntgMpRnLHGqTVn6W7n7je4SoezFhfbUMdwxAot

Тогда идентификатор subsctionID будет «c_hMYQ0IJEg:APA91bHugFROB5EKLlwFKPjc7lRs_YZ7nBV655oftqdKPtzsmoz149d1BLVntgMpRnLHGqTVn6W7n7je4SoezFhfbUMdwxAot».

Я использовал только последнюю часть, как в «APA91bHugFROB5EKLlwFKPjc7lRs_YZ7nBV655oftqdKPtzsmoz149d1BLVntgMpRnLHGqTVn6W7n7je4SoezFhfbUMdwxAot», и я думаю, именно поэтому я получал ошибки.

Комментарии:

1. Вот и все! Это правильный ответ, приятно знать, поскольку в примере формы Google использовалась только последняя часть

Ответ №2:

Это означает, что установка service worker связана с отправителем GCM, который отличается от отправителя GCM, который сгенерировал ключ API.

Устранение неполадок с помощью Pushpad:

  • Убедитесь, что вы создали и связали manifest.json
  • Убедитесь, что вы правильно ввели gcm_sender_id в manifest.json
  • Убедитесь, что вы правильно ввели GCM API key

Если все правильно, вы также можете попробовать отказаться от подписки и повторно подписаться после того, как вы установили правильный gcm_sender_id .

Комментарии:

1. Спасибо за ответ collimarco, дело в том, что я уже трижды проверил соответствие идентификатора отправителя и ключа API, а также использовал совершенно другой идентификатор отправителя проекта и ключ API на новом порту сервера, чтобы убедиться, что от последней конфигурации не осталось, у вас есть еще какие-нибудь советыпо этой проблеме?

2. @JorgeCuevas В предыдущие месяцы я оказывал поддержку многим пользователям, столкнувшимся с этим сообщением об ошибке, и ошибки всегда были перечисленными выше — последнее предположение: вы пытались использовать GCM вместо Firebase?