#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?