Firebase 401 несанкционированная ошибка FCM
Я пытаюсь протестировать API обмена сообщениями Firebase Cloud, поскольку все функции недоступны из консоли (в частности, настройка уведомлений, когда приложение находится в фоновом режиме). Но по некоторым причинам, я не могу заставить его работать, и он всегда показывает ошибку 401. Я исследовал причины этого и попробовал его после регенерации нового ключа сервера, но ошибка остается постоянной. Удивительно, но когда я создал новый ключ сервера, он не отражается в консоли Firebase и показывает ключ сервера как пустой. Кроме того, я попытался добавить свой IP-адрес в белый список IPs сервера, но все равно не повезло. Я прикрепил скриншот запроса, который я сделал с Postman (я заменяю ключ сервера вместо serverKey.
Я застрял на этом в течение нескольких часов и был бы очень признателен некоторую помощь.
7 ответов
Я заметил с вашего скриншота, что вы используете "key: serverKey". Не могли бы вы попробовать использовать" key=serverKey " вместо этого?
Также вам не нужно иметь "сообщение fcm.googleapus.com/fcm/send"; это не настоящий json и объяснило бы ошибку, которую вы видите. URL-адрес запроса уже определен в другом месте, поэтому удалите его из полезной нагрузки.
Я не знаю, использует ли кто-то [ключ веб-API] в качестве [YOUR_SERVER_KEY] для теста POSTMAN и продолжает получать "ошибку 401". [Ключ веб-API] не является [YOUR_SERVER_KEY].
вы должны перейти к консоли Firebase и проверить это:
чтобы получить правильный ключ сервера.
надеюсь, что это поможет.
Я столкнулся с той же проблемой.
проблема в том, что я использовал старый ключ сервера. когда я использовал новую версию ключа сервера, проблема была решена.
в настройках консоли firebase goto - > облачные сообщения
затем используйте новый ключ сервера. он длиннее, чем старый ключ версии.
Я тоже сталкиваюсь с той же проблемой... Я использую curl в php для публикации, и он работает, только если у меня есть файлы php, хранящиеся на моем сервере LocalHost. Когда я пытаюсь использовать доступ к файлам через бесплатный хостинг онлайн, то он говорит Unautorized 401.
поэтому я бы предложил, если вы можете, использовать Localhost.
перейти к https://console.firebase.google.com/u/0/project/[project-name]/settings/cloudmessaging/
вы можете использовать ключ сервера или ключ устаревшего сервера
У меня такая же проблема на стороне сервера(C#).
вы в основном использовали неправильный ключ сервера (или ключ API) для кода стороны обслуживания.
перейдите по ссылке ниже по StackOverflow, опубликованной мной (полезно найти ключ сервера (или ключ API) )
Я столкнулся с той же проблемой, я решил ее с помощью следующих шагов
1-на сервере, с которого вы отправляете push, используйте только ключ браузера, вы можете получить его из консоли Firebase или консоли Google api, как я выделил в приведенных ниже изображениях: -
консоль Firebase, нажмите на проект-- > настройки
Примечание: ключ веб-api консоли Firebase и google клавиша браузера консоли одинакова, вы можете использовать любой из них
2-Если вы выполните только первый шаг, вы получите несанкционированную ошибку, чтобы решить эту проблему, вам нужно авторизовать свой ключ браузера в консоли google, добавив свой IP-адрес сервера, откуда вы отправите толчок. Нажмите на значок редактировать карандаш в правой части ключа браузера в консоли Google api, над первым изображение
после добавления Ip-адреса нажмите Сохранить Убедитесь,что маркер вашего устройства не пуст, на котором вы отправляете толчок, я надеюсь, что ваш толчок будет отправлен успешно.