Отправка Push через почтмана с помощью Firebase Messaging

Я пытаюсь использовать Postman для отправки единого Push Notification с помощью службы Firebase Cloud Messaging.

Это рабочая команда cURL для одного и того же объекта, на котором я использую ссылку.

curl -X POST --header "Authorization: key=<API_ACCESS_KEY>" --Header "Content-Type: application/json" https://fcm.googleapis.com/fcm/send -d "{\"to\":\"<YOUR_DEVICE_ID_TOKEN>\",\"notification\":{\"body\":\"Firebase\"} \"priority":\"10"}"

Что я сделал до сих пор..

1 - Установите заголовки соответственно

enter image description here

2- На теле я использую raw

{
    "to" : "<YOUR_DEVICE_ID_TOKEN>"
    , 

    "notification": {
    "body": "Firebase Cloud Message"
  }

  }

При выполнении я возвращаюсь 401 - Unauthorized.

Что отсутствует, чтобы правильно отправить push-уведомление?

Ответ 1

Правильный способ установки ключа Authorization в заголовке

key=<API_ACCESS_KEY>

да и не только

<API_ACCESS_KEY>

Глупая ошибка, но поскольку это может быть полезно для кого-то для тестирования Firebase Messaging с Postman, я оставляю вопрос открытым.

Ответ 2

Проводка FCM через POSTMAN

Body - to token id (должен быть сгенерирован через токен экземпляра) записать тело в raw двоичное приложение /json body tye

{
   "to": "cpa8cZPjq-w:APA91bF122f1Rnhu9v47bL
   YMajaNTHAIU5SzItDwTy9o2MCIveG0PlK78VPvp3d
   CqjwnUKZ4
   ngi1trSyM3_aXttW62iknFfbPGtjRLhZr6wq-3qFdboz8gzdOGPz**********",

   "notification": {

    "body": "Hello",
    "title": "This is test message."
   }
   }

header: должен иметь разрешение: ключ сервера

Тип контента: application/json headerimage после публикации здесь сообщения об успешном завершении: success message image

Ответ 3

Посмотрите ниже скриншот о том, как установлен ключ авторизации

Авторизация: ** key = ** abcdefghijklmnopr2qrst253uv124wxyz_9shg

enter image description here

Ответ 4

Для нового API FCM HTTP v1, метод тестирования push-уведомлений через Postman изменился, и существующие решения касались только устаревшего метода тестирования push-уведомлений: https://firebase.google.com/docs/cloud-messaging/send- сообщение

Чтобы протестировать Postman с API FCM HTTP v1, вам нужно сначала получить недолговечный токен Oauth 2. Вы можете создать его согласно информации на сайте Firebase здесь: https://firebase.google.com/docs/cloud-messaging/auth-server

Я сгенерировал мой, используя Python, используя приведенный ниже код - не забудьте pip установить пакет, чтобы вы могли успешно импортировать пакет в свой код:

from oauth2client.service_account import ServiceAccountCredentials

def _get_access_token():
  """Retrieve a valid access token that can be used to authorize requests.

  :return: Access token.
  """
  credentials = ServiceAccountCredentials.from_json_keyfile_name(
      'service-account.json', FCM_SCOPE)
  access_token_info = credentials.get_access_token()
  return access_token_info.access_token

Получив токен, вы можете вставить его в свой почтальон под авторизацией:

enter image description here

ВАЖНЫЙ:

В моем случае я изо всех сил пытался заставить это работать, поскольку я пытался протестировать запланированное задание, которое собиралось отправлять push-уведомления каждые несколько минут в FCM. Я распечатал токен в своих журналах, а затем передал этот токен моему почтальону для тестирования, не понимая, что он уже использовался в запланированных вызовах в FCM.

В этом случае, поскольку он уже использовался, токен больше не будет действительным, и все мои тесты Почтальона не пройдены. В этом случае вам нужно будет сгенерировать свежие токены для ваших тестов Postman.

Ответ 5

Откройте Почтальон, нажмите на текстовое поле Enter request URL, введите URL-адрес Firebase

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

Чем изменить тип запроса на POST. Смотрите скриншот ниже:

enter image description here

Теперь нажмите на заголовок и добавьте два params Content-Type и Authorization.

Content-Type= application/json
Authorization=AIzaSyAEb3NhsfGw1ih5mn8cmrGUAXMp86waQ //FCM SERVER KEY

Смотрите скриншот ниже:

enter image description here

Теперь нажмите на Body выберите Row и добавьте значение как объект, как показано ниже.

{ 
"to":"eB5papU2Xdc:APA91bFFvc3dXru1fN5JY8U19oHIpfGhPUx7Ll7v9vJYTsIGZ15mDwB2Wpep3flLK85IUqqs2WqJwjYHSDYX28oJ1wTP0R2TDc2ba_uVjUauDcp3pCNKr_0KlghOnS", 
 "notification" : {
 "body" : "New announcement assigned",
 "OrganizationId":"2",
 "content_available" : true,
 "priority" : "high",
 "subtitle":"Elementary School",
 "Title":"hello"
 },
 "data" : {
 "priority" : "high",
 "sound":"app_sound.wav",
 "content_available" : true,
 "bodyText" : "New Announcement assigned",
 "organization" :"Elementary school"
}
}

Теперь ваш почтальон будет выглядеть так. Нажмите кнопку Отправить в правом верхнем углу.

enter image description here

Удачи!

Ответ 6

POST https://fcm.googleapis.com/v1/projects/projectID/messages:send

заголовки:

Authorization:Bearer ya29.c.ElrXBjdxUzOI................o7_Y2shX2Je4tEe0

тело:

  {
      "message": {
        "token": "dlqj05MCnNI:APA91bGhCX6NhT.................QDpKhGheHyhhJ6T",
        "android": {
          "notification": {
            "title": "New Content!",
            "body": "A new video has been uploaded.",
            "icon": "your_icon"
          }
        }
      }
    }

Ответ 7

Обязательно включите заголовок content-type: application/json

он завершается ошибкой, если вы не включите заголовок типа контента, говорящий: Error = MissingRegistration

Ответ 8

Проверяете ли вы это: Проверьте уведомление FCM с POSTMAN!

Отправить сообщение данных с использованием протокола HTTP с POSTMAN

  • Вам необходимо скопировать ключ сервера Legecy из Firebase Console> Настройки проекта> Облачные сообщения

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

  • Выберите POST. Введите URL-адрес запроса как https://fcm.googleapis.com/fcm/send
  • Добавление авторизации заголовков: key=<legacy_server_key> ИЛИ Authorization: key=<server_key> и Content-Type: application/json.

  • Теперь выберите Body> raw> JSON (application/json) и добавьте следующий код:

    {
         "to" : "YOUR_FCM_TOKEN_WILL_BE_HERE",
         "collapse_key" : "type_a",
         "notification" : {
             "body" : "Body of Your Notification",
             "title": "Title of Your Notification"
         },
         "data" : {
             "body" : "Body of Your Notification in Data",
             "title": "Title of Your Notification in Title",
             "key_1" : "Value for key_1",
             "key_2" : "Value for key_2"
         }
    }

Я создал коллекцию POSTMAN для вас, запускайте непосредственно в Postman.

Надеюсь, это поможет вам.

Ответ 9

enter image description here

Что именно является ключом сервера? Я использовал (на рис. Выше) ключ сервера и старый ключ сервера, но ни один из них не работает.

enter image description here

Кто-нибудь знает, что не так? Для токена → я использовал токен FCM, полученный из сообщений Firebase следующим образом:

firestoreMessaging.getToken()