Что такое часть "Авторизация" запроса на отправку сообщений в Google Firebase Downstream?
Я хочу попытаться отправить сообщение с помощью службы обмена сообщениями google FCM
, и, как говорится в документе, HTTP-запрос должен выглядеть примерно так:
https://fcm.googleapis.com/fcm/send
Content-Type:application/json
Authorization:key=AIzaSyZ-1u...0GBYzPu7Udno5aA
{ "data": {
"score": "5x1",
"time": "15:10"
},
"to" : "bk3RNwTe3H0:CI2k_HHwgIpoDKCIZvvDMExUdFQ3P1..."
}
Моя проблема в том, что я не знаю, что такое значение Authorization
, и когда я удалю этот заголовок и сделаю запрос, я получаю сообщение об ошибке 401:Unauthorized
. Я думаю, что это должен быть какой-то ключ api или что-то еще, но я не может найти его в моем проекте. Кто-нибудь может мне помочь?
PS: для тестирования я в настоящее время использую этот сайт для отправки messsage на свое устройство
Ответы
Ответ 1
В соответствии с Документация Firebase Cloud Messaging Server:
Аутентификация
Чтобы отправить сообщение, сервер приложений выдает запрос POST. Например:
https://fcm.googleapis.com/fcm/send
Запрос сообщения состоит из двух частей: HTTP-заголовок и HTTP-запрос тела.
Заголовок HTTP должен содержать следующие заголовки:
-
Авторизация: key = YOUR_SERVER_KEY
Убедитесь, что это ключ сервер, значение которого доступно в консоли проекта Firebase в разделе Настройки проекта > Облачные сообщения. Ключи клиента или любые другие ключи отклоняются FCM.
-
Content-Type: application/json
для JSON; application/x-www-form-urlencoded;charset=UTF-8
для обычного текста.
Если Content-Type опущен, предполагается, что формат является открытым текстом.
Надеюсь, что это поможет!
ОБНОВЛЕНИЕ (2016/11/16)
Возможно, вам стоит рассмотреть возможность использования токена FCM вместо ключей сервера в качестве примечания в следующем скриншоте
![введите описание изображения здесь]()
ОБНОВЛЕНИЕ (2016/12/08)
Firebase обновила ключи сервера до новой версии и рекомендовала обновить до последней версии. Посмотрите скриншот ниже:
![введите описание изображения здесь]()
Ответ 2
Я также столкнулся с этой ошибкой. Проблема связана с ключом сервера. Не используйте ключ api из файла google-services.json.
Вы должны использовать ключ сервера api из своего проекта консоли firebase, на вкладке проекта вкладки облачных сообщений: https://console.firebase.google.com/project/firebase-probiz/settings/cloudmessaging
Ответ 3
Это ваш ключ сервера, который вы можете наблюдать на консоли console.developers.google.com или в консоли проекта Firebase в разделе "Настройки проекта" > "Облачные сообщения". Обратите внимание на ключ, который автоматически создается службами Google. Вы должны добавить IP-адрес в G.Console для ограничения использования.
Плюс помните о Content-Type: application/json, иначе вы получите Error = MissingRegistration.