What Bearer token should I be using for Firebase Cloud Messaging testing?

前端 未结 5 645
半阙折子戏
半阙折子戏 2020-12-29 06:45

I am trying to send a test notification using Firebase Cloud Messaging via Postman. I\'m doing a POST to this url

https://fcm.googleapis.com/v1/projects/[my         


        
相关标签:
5条回答
  • 2020-12-29 07:26

    Steps to get Authentication Bearer:

    1. Got to Google OAuth Playground: https://developers.google.com/oauthplayground
    2. In the "Input your own scopes" for FCM use this url: https://www.googleapis.com/auth/firebase.messaging
    3. Tap Authorize API.
    4. Pick correct user for authorisation and allow access.
    5. In the Step 2: Exchange authorization code for tokens tap Exchange authorisation code for tokens.
    6. Access token is your Bearer.

    Steps to send FCM throw Postman:

    1. URL to send: https://fcm.googleapis.com/v1/projects/projectid-34543/messages:send
    2. Request Type: POST
    3. Headers: Content-Type -> application/json & Authorization -> Bearer
    4. In the body section enter APS payload with the right device token.
    5. Click send.

    In case you want to use cURL, for a data-notification:

    curl --location --request POST 'https://fcm.googleapis.com/v1/projects/your-project-id/messages:send' \
    --header 'Content-Type: application/json' \
    --header 'Authorization: Bearer your-access-token-*****-wqewe' \
    --data-raw '{
        "message": {
            "token": "device-token-qwfqwee-***-qefwe",
            "data": {
                "Key1": "val1",
                "Key2": "val2"
            }
        }
    }'
    
    0 讨论(0)
  • 2020-12-29 07:34

    To generate an for testing push notification, you can use Google Developers OAuth 2.0 Playground

    You can even send a test Push Notification using Google Developers OAuth 2.0 Playground itself. Or if you want can use Postman / Terminal (curl command) as well.

    Please find the detailed steps here, which I wrote.

    Note : Instead of "Project name" in the Endpoint, you have to use "Project ID". Steps for getting the Project ID is also mentioned in the above link.

    0 讨论(0)
  • 2020-12-29 07:38

    The Bearer Token is the result of getting an OAuth access token with your firebase service account.

    1. Get yourself a Firebase service account key.
      Go to your firebase console > Settings > Service Accounts.
      If your on Firebase Admin SDK generate new private key.

    2. You use the service account key to authenticate yourself and get the bearer token.
      Follow how to do that in Node, Python or Java here: https://firebase.google.com/docs/cloud-messaging/auth-server.

    So in Java you can get the token like this:

      private static final String SCOPES = "https://www.googleapis.com/auth/firebase.messaging";
    
      public static void main(String[] args) throws IOException {
        System.out.println(getAccessToken());
      }
    
      private static String getAccessToken() throws IOException {
        GoogleCredential googleCredential = GoogleCredential
            .fromStream(new FileInputStream("service-account.json"))
            .createScoped(Arrays.asList(SCOPES));
        googleCredential.refreshToken();
        return googleCredential.getAccessToken();
      }
    
    1. And now you can finally send your test notification with FCM.

    Postman code:

    POST /v1/projects/[projectId]/messages:send HTTP/1.1
    Host: fcm.googleapis.com
    Content-Type: application/json
    Authorization: Bearer access_token_you_just_got
    
    {
      "message":{
        "token" : "token_from_firebase.messaging().getToken()_inside_browser",
        "notification" : {
          "body" : "This is an FCM notification message!",
          "title" : "FCM Message"
          }
       }
    }
    
    0 讨论(0)
  • 2020-12-29 07:39

    You should use definitely use Google-OAuth2.0, which can be generated using described steps in the provided link.

    you can find detailed steps here, which I answered for similar question.

    0 讨论(0)
  • 2020-12-29 07:41

    You have to generate new access token in Postman.

    First, ensure you have enabled FCM API in Google Developer Console. Than go to Google Developer Console -> APIs & Services -> Credentials. Look at "OAuth 2.0 client IDs" section. There should be at least one item in list. Download it as json file.

    In Postman open "Authorization" tab, select Type = "OAuth 2.0" than click "Get New Access Token". Dialog appears.

    Fields:

    Token Name - type what you want

    Grant Type = Authorization Code

    Callback URL = redirect_uris from downloaded json

    Auth URL = auth_uri

    Access Token URL = token_uri

    Client ID = client_id

    Client Secret = client_secret

    Scope = "https://www.googleapis.com/auth/firebase.messaging"

    State - leave empty

    Client Authentication = default, Send As Basic Auth Header

    Click "Request Token" and that's it.

    0 讨论(0)
提交回复
热议问题