Отправка 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
после публикации здесь сообщения об успешном завершении: ![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()