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

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

Ответы на вопрос(3)

ьзуйте ключ api из файла google-services.json.

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

Решение Вопроса

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

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

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

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

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

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

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

Убедитесь, что этосервер ключ, значение которого доступно в консоли проекта Firebase в разделеНастройки проекта > Облачные сообщения, Клиентские ключи или любые другие ключи отклоняются FCM.

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

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

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

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

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

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

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

 FredLoh09 июн. 2016 г., 01:49
Эй, @BNK, ты не против опубликовать пример кода curl или httpie? Я не могу заставить авторизацию работать. Спасибо!
 roostaamir07 июн. 2016 г., 09:51
Огромное спасибо. Документация не очень хорошо организована, на мой взгляд, но еще раз спасибо за ваш ответ
 Sagar Patil18 окт. 2016 г., 13:18
Я получаю HTTP / 1.1 400 Bad Request. Мой пост fcm.googleapis.com/fcm/send Тип контента: application / json Авторизация: key = GduFdg ...... wK8B4Uwk2xxx ... {"data": {" message ":" post message "," version ":" 2.0:}, "to": "fasdsadasdsadasj9N40: APA91b .... 5nX - HG ..... 7wyTCN"} что не так?
 BNK19 окт. 2016 г., 03:14
@SagarPatil вы получили 400, а не 401 как ОП, так что к вашему сведениюfirebase.google.com/docs/cloud-messaging/...
 BNK09 июн. 2016 г., 02:00
@FredLoh по ссылке Google в моем ответе, в «Проверка правильности ключа сервера», вы найдете пример curl
 Sagar Patil19 окт. 2016 г., 08:41
@BNK спасибо, что помог мне.

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

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

Ваш ответ на вопрос