Что такое часть "Авторизация" запроса на отправку сообщений в 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.