test notification fcm example curl firebase postman firebase-cloud-messaging

curl - fcm - test push notifications android



Enviando Push via Postman usando Firebase Messaging (7)

Estoy tratando de usar Postman para enviar una única Notificación Push mediante el servicio Firebase Cloud Messaging.

Este es un comando de trabajo cURL para el mismo propósito, en el que estoy usando como referencia.

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"}"

Lo que he hecho hasta ahora ..

1 - Establecer los encabezados adecuadamente

2- En Body , estoy usando raw

{ "to" : "<YOUR_DEVICE_ID_TOKEN>" , "notification": { "body": "Firebase Cloud Message" } }

Al ejecutar, estoy volviendo 401 - Unauthorized .

¿Qué falta para enviar correctamente la notificación push?


¿Has comprobado esto: Probar la notificación de FCM con POSTMAN!

Enviar mensaje de datos utilizando el protocolo HTTP con POSTMAN

  • Debe copiar la clave del servidor Legecy desde la Consola Firebase> Configuración del proyecto> Mensajería en la nube

Nota: Firebase ha actualizado las claves de nuestro servidor a una nueva versión. Puede continuar usando su clave de servidor Legacy, pero se recomienda que actualice a la versión más reciente.

  • Seleccione POST. Introduzca la URL de solicitud como https://fcm.googleapis.com/fcm/send
  • Añadir encabezados Autorización: key=<legacy_server_key> O Authorization: key=<server_key> y Content-Type: application/json.

  • Ahora seleccione Body> raw> JSON (application / json) y agregue el siguiente código:

{ "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" } }

He creado la Colección POSTMAN para ti, Ejecutar en Postman directamente.

Espero que te ayude.


Asegúrese de incluir el tipo de contenido: application / json header

falla con un error engañoso si no incluye el encabezado de tipo de contenido que dice: Error = MissingRegistration


La forma correcta de configurar la clave de Authorization en el encabezado es

key=<API_ACCESS_KEY>

y no solo

<API_ACCESS_KEY>

Error tonto, pero ya que esto podría ser útil para alguien para probar Firebase Messaging with Postman, estoy dejando la pregunta abierta.


Mira la captura de pantalla de abajo cómo se establece la clave de autorización

Autorización: ** clave = ** abcdefghijklmnopr2qrst253uv124wxyz_9shg


Para la nueva API de FCM HTTP v1, el método de prueba de notificaciones push a través de Postman ha cambiado y las soluciones existentes solo abordan el método heredado de prueba de notificaciones push: https://firebase.google.com/docs/cloud-messaging/send-message

Para probar en Postman con FCM HTTP v1 API, primero deberá obtener un token de Oauth 2 de corta duración. Puede generar uno según la información en el sitio de Firebase aquí: https://firebase.google.com/docs/cloud-messaging/auth-server

Generé el mío usando Python usando el código siguiente. Recuerda que debes instalar el paquete para que puedas importar el paquete a tu código con éxito:

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

Una vez que tenga el token, puede insertarlo en su cartero con autorización:

IMPORTANTE:

En mi caso, luché un poco para que esto funcionara, ya que estaba tratando de probar una tarea programada que iba a enviar una notificación automática cada pocos minutos a FCM. Imprimí el token en mis registros y luego lo llevé al Postman para que lo probara, sin darme cuenta de que ya se había utilizado en las llamadas programadas a FCM.

En ese caso, debido a que ya se ha utilizado, el token ya no será válido y mis pruebas de Postman fallaron. En este caso, deberá generar tokens nuevos para sus pruebas de Postman.


Publicar FCM a través de POSTMAN

Cuerpo: to es el identificador del token (debe generarse a través del token de la instancia).

{ "to": "cpa8cZPjq-w:APA91bF122f1Rnhu9v47bL YMajaNTHAIU5SzItDwTy9o2MCIveG0PlK78VPvp3d CqjwnUKZ4 ngi1trSyM3_aXttW62iknFfbPGtjRLhZr6wq-3qFdboz8gzdOGPz**********", "notification": { "body": "Hello", "title": "This is test message." } }

encabezado: debe tener autorización: clave del servidor

Tipo de contenido: aplicación / json después de publicar aquí el mensaje de éxito:


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

encabezados

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

cuerpo :

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