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>
OAuthorization: key=<server_key>
yContent-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.
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"
}
}
}
}