Sending Push via Postman using Firebase Messaging

101,487

Solution 1

The correct way to set up Authorization key at Header is

key=<API_ACCESS_KEY>

and not only

<API_ACCESS_KEY>

Silly mistake, but since this could be useful for someone for testing Firebase Messaging with Postman I'm leaving the question opened.

Solution 2

Posting FCM through POSTMAN

Body - to is token id (should be generated through instance token) write body in raw binary application/json body tye

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

   "notification": {

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

header: should have authorization :server key

Content type : application/json headerimage after posting here the success message: success message image

Solution 3

Open Postman, click on Enter request URL textbox, enter firebase url

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

Than change request type to POST. See below screenshot:

enter image description here

Now to click on Header and add two params Content-Type and Authorization.

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

See below screenshot:

enter image description here

Now click on Body than select Row and add value as object like below

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

Now your Postman would look like this. Click Send button at top right.

enter image description here

Good luck!

Solution 4

For the new FCM HTTP v1 API, the method of testing push notifications through Postman has changed and the existing solutions only addressed the legacy method of testing push notifications: https://firebase.google.com/docs/cloud-messaging/send-message

To test on Postman with FCM HTTP v1 API, you will need to first fetch a short-lived Oauth 2 token. You can generate one as per the information on the Firebase site here: https://firebase.google.com/docs/cloud-messaging/auth-server

I generated mine using Python using the code below - remember to pip install the package so that you can import the package into your code successfully:

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

Once you have the token - you can insert it into your Postman under authorisation:

enter image description here

IMPORTANT:

In my case, I had struggled a bit to get this to work as I was trying to test a scheduled task that was going to send push notification every few minutes to FCM. I had printed the token to my logs and then taken that token to my Postman for testing, not realising that it already has been used in the scheduled calls to FCM.

In that case, because it has already been used, the token will no longer be valid and my Postman tests were all failing. In this case, you will need to generate fresh tokens for your Postman tests.

Solution 5

Look at below screenshot how Authorization key is set

Authorization : **key=**abcdefghijklmnopr2qrst253uv124wxyz_9shg

enter image description here

Share:
101,487

Related videos on Youtube

Machado
Author by

Machado

When you have eliminated the impossible, whatever remains, however improbable, must be the truth?

Updated on February 16, 2022

Comments

  • Machado
    Machado about 2 years

    I'm trying to use Postman to send a single Push Notification using Firebase Cloud Messaging service.

    This is a working cURL command for the same purposal, on which I'm using as a reference.

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

    What I have done so far..

    1 - Set the Headers appropriately

    enter image description here

    2- At Body , I'm using raw

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

    When executing, I'm getting back 401 - Unauthorized.

    What's missing to correctly send the push notification?

  • Asymptote
    Asymptote almost 7 years
    how to get to token? is there an API?
  • praveen dewangan
    praveen dewangan almost 7 years
    Read firebase android developer documentation
  • phpdroid
    phpdroid over 6 years
    am getting sucess=1 but am not getting a notification on mobile
  • praveen dewangan
    praveen dewangan over 6 years
    Hi phpdroid you need to check complete body, message is passing to your mobile but it is not able to pick the body
  • DevOma
    DevOma over 5 years
    how to send to all users, who installed app, instead of send to topic?
  • CoolMind
    CoolMind almost 5 years
    @phpdroid, see pluralsight.com/guides/…, freecodecamp.org/news/… and many others.
  • phpdroid
    phpdroid almost 5 years
    @CoolMind it's been 2 years thanks for suggestions tho!
  • CoolMind
    CoolMind almost 5 years
    Thanks, but currently it shows an error in HTML: "<TITLE>Invalid (legacy) Server-key delivered or Sender is not authorized to perform request.</TITLE>".
  • CoolMind
    CoolMind almost 5 years
    Thanks! At least, it shows a more suitable error, than "Invalid (legacy) Server-key...".
  • CoolMind
    CoolMind almost 5 years
    I think, you have right header, but maybe a configuration of Firebase project is not done. Have you added an Android or iOS application?
  • CoolMind
    CoolMind almost 5 years
    This works if you use a server key or legacy server key from Cloud Messaging settings (starting from "AAAA" or "Alza").
  • CoolMind
    CoolMind almost 5 years
    This works if you use a server key or legacy server key from Cloud Messaging settings (starting from "AAAA" or "Alza").
  • CoolMind
    CoolMind almost 5 years
    Also you should check google-services.json in your Android application. You need to download it from Firebase console and paste into Android application, then run on device.
  • CoolMind
    CoolMind almost 5 years
    I see, you already have --header "Authorization: key=<API_ACCESS_KEY> in curl and wrong header in Postman.
  • CoolMind
    CoolMind almost 5 years
    This answer is your question: stackoverflow.com/questions/56723045/….
  • roghayeh hosseini
    roghayeh hosseini over 4 years
    @DevOma for send to all users, is needed to subscribe theme to 'all' topic. and so send to '/topics/all'
  • Evgenii Vorobei
    Evgenii Vorobei about 4 years
    where you got this Bearer token? If I take the server key, FCM throws 401
  • Neo
    Neo over 3 years
    This sends to the given token only. How can I send it to all users from postman?
  • Neo
    Neo over 3 years
    This method allows it to send to the specified token. How can we send to all the users?
  • Shridhar
    Shridhar over 3 years
    I am getting this response but not the notification to the android app. Any idea?
  • clauub
    clauub about 3 years
    This works like a charm and sends notifications instantly. A thing that should be changed is that Title to title !
  • clauub
    clauub about 3 years
    What's the difference between notification and data object? Why do you use both?
  • Ankit Mishra
    Ankit Mishra about 3 years
    how we can convert same thing in nodejs using rest api
  • Sharath B Naik
    Sharath B Naik over 2 years
    This works for me. Thanks....
  • Sergey Neskoromny
    Sergey Neskoromny about 2 years
    This token is generated by the Firebase Admin SDK.