web-dev-qa-db-fra.com

Envoi Push via Postman à l'aide de la messagerie Firebase

J'essaie d'utiliser Postman pour envoyer une seule notification push à l'aide du service de messagerie en nuage Firebase.

Il s'agit d'une commande cURL qui fonctionne pour le même but, sur lequel j'utilise comme référence.

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

Ce que j'ai fait jusqu'à présent ..

1 - Définissez les en-têtes de manière appropriée

 enter image description here

2- À Body, j'utilise raw

{
    "to" : "<YOUR_DEVICE_ID_TOKEN>"
    , 

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

  }

Lors de l'exécution, je récupère 401 - Unauthorized.

Que manque-t-il pour envoyer correctement la notification Push?

18
Machado

La manière correcte de configurer la clé Authorization à Header est la suivante:

key=<API_ACCESS_KEY>

et pas seulement

<API_ACCESS_KEY>

Silly erreur, mais puisque cela pourrait être utile pour quelqu'un de tester Firebase Messaging avec Postman, je laisse la question ouverte.

24
Machado

Comptabilisation de la FCM via POSTMAN

Body - to est un identifiant de jeton (doit être généré via un jeton d'instance). écrire un corps dans une application binaire brute/json  body tye

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

   "notification": {

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

en-tête: devrait avoir l'autorisation: clé du serveur 

Type de contenu: application/json  headerimage après avoir posté ici le message de réussite:  success message image

19
praveen dewangan

Regardez ci-dessous la capture d'écran comment la clé d'autorisation est définie

Autorisation: ** clé = ** abcdefghijklmnopr2qrst253uv124wxyz_9shg

 enter image description here

6
rohitpaniker

Pour la nouvelle API FCM HTTP v1, la méthode de test des notifications Push via Postman a été modifiée et les solutions existantes ne prennent en compte que la méthode traditionnelle de test des notifications Push: https://firebase.google.com/docs/cloud-messaging/ envoyer le message

Pour tester sur Postman avec l'API FCM HTTP v1, vous devez d'abord récupérer un jeton de courte durée Oauth 2. Vous pouvez en générer un conformément aux informations sur le site Firebase ici: https://firebase.google.com/docs/cloud-messaging/auth-server

J'ai généré le mien en utilisant Python en utilisant le code ci-dessous - n'oubliez pas d'installer le paquet à la pépine afin de pouvoir importer le paquet dans votre code avec succès:

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

Une fois que vous avez le jeton - vous pouvez l'insérer dans votre Postman sous autorisation:

 enter image description here

IMPORTANT:

Dans mon cas, j'avais un peu de difficulté à faire en sorte que cela fonctionne car j'essayais de tester une tâche planifiée qui allait envoyer une notification Push toutes les quelques minutes à FCM . J'avais imprimé le jeton dans mes journaux, puis pris ce jeton à mon Postman pour le test, ne réalisant pas qu'il a déjà été utilisé dans les appels planifiés à FCM.

Dans ce cas, puisqu'il a déjà été utilisé, le jeton ne sera plus valide et mes tests Postman ont tous échoué. Dans ce cas, vous devrez générer de nouveaux jetons pour vos tests Postman.

5
Simon

Assurez-vous d'inclure l'en-tête content-type: application/json

il échoue avec une erreur trompeuse si vous n'incluez pas l'en-tête de type de contenu disant: Error = MissingRegistration

0
Umer Ahmed

Avez-vous vérifié ceci: Testez la notification FCM avec POSTMAN!

Envoyer un message de données en utilisant le protocole HTTP avec POSTMAN

  • Vous devez copier Legecy Server Key depuis la console Firebase> Paramètres du projet> Cloud Messaging

Remarque: Firebase a mis à niveau nos clés de serveur vers une nouvelle version. Tu peux continuez à utiliser votre clé de serveur Legacy, mais il est recommandé de vous passer à la version la plus récente.

  • Sélectionnez POST. Entrez l'URL de la demande en tant que https://fcm.googleapis.com/fcm/send
  • Ajouter l'autorisation d'en-tête: key=<legacy_server_key> OR Authorization: key=<server_key> et Content-Type: application/json.

  • Sélectionnez maintenant Body> raw> JSON (application/json) et ajoutez le code suivant:

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

J'ai créé POSTMAN Collection pour vous, Run in Postman directement.

J'espère que ça vous aidera.

0
Pratik Butani