it-swarm.com.ru

Что такое `Authorization` часть http-запроса на сообщение Google Firebase Downstream?

Я хочу попробовать отправить сообщение с помощью службы сообщений FCM от Google, и, как говорится в документе, запрос 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: в целях тестирования я в настоящее время использую этот сайт чтобы отправить сообщение на мое устройство

18
roostaamir

В соответствии с О сервере Firebase Cloud Messaging документация:

Аутентификация

Чтобы отправить сообщение, сервер приложений выдает запрос POST. Например:

https://fcm.googleapis.com/fcm/send

Запрос сообщения состоит из двух частей: заголовок HTTP и HTTP тело.

Заголовок HTTP должен содержать следующие заголовки:

  • Авторизация: ключ = YOUR_SERVER_KEY

    Убедитесь, что это ключ server, значение которого доступно в консоли проекта Firebase в Project Settings> Cloud Messaging. Ключи клиента или любые другие ключи отклоняются FCM.

  • Content-Type: application/json для JSON; application/x-www-form-urlencoded;charset=UTF-8 для простого текста.

    Если Content-Type опущен, формат считается простым текстом.

Надеюсь, поможет!


ОБНОВЛЕНИЕ (2016/11/16)

Возможно, вам следует рассмотреть возможность использования токена FCM вместо ключей сервера, как показано на следующем снимке экрана.

 enter image description here


ОБНОВЛЕНИЕ (2016/12/08)

Firebase обновил ключи сервера до новой версии и рекомендовал обновить ее до последней версии. Пожалуйста, смотрите скриншот ниже:

 enter image description here

26
BNK

я также столкнулся с этой ошибкой. Проблема с ключом сервера. Не используйте ключ api из файла google-services.json.

Вы должны использовать API-ключ сервера из вашего проекта консоли Firebase на ключах проекта на вкладке «Облачные сообщения»: https://console.firebase.google.com/project/firebase-probiz/settings/cloudmessaging

1
Leo Much

Это ключ вашего сервера, который вы можете наблюдать в console.developers.google.com или консоли проекта Firebase в разделе «Настройки проекта»> «Облачные сообщения». Обратите внимание на ключ, который автоматически создается Службами Google. Вы должны добавить IP-адрес, включая G.Console, чтобы ограничить использование.

Кроме того, помните о Content-Type: application/json, в противном случае вы получите Error = MissingRegistration.

0
Sergio Kosik