Google的FCM访问令牌 - 云消息传递

时间:2017-12-29 22:21:01

标签: java firebase firebase-cloud-messaging

我按照这里的说明操作: https://firebase.google.com/docs/cloud-messaging/auth-server

我收到以下错误:

Exception in thread "main" java.lang.IllegalArgumentException: no JSON input found
    at com.google.api.client.repackaged.com.google.common.base.Preconditions.checkArgument(Preconditions.java:125)
    at com.google.api.client.util.Preconditions.checkArgument(Preconditions.java:49)
    at com.google.api.client.json.JsonParser.startParsing(JsonParser.java:223)
    at com.google.api.client.json.JsonParser.parse(JsonParser.java:380)
    at com.google.api.client.json.JsonParser.parse(JsonParser.java:355)
    at com.google.api.client.json.JsonObjectParser.parseAndClose(JsonObjectParser.java:87)
    at com.google.api.client.json.JsonObjectParser.parseAndClose(JsonObjectParser.java:81)
    at com.google.api.client.googleapis.auth.oauth2.GoogleCredential.fromStream(GoogleCredential.java:250)
    at com.google.api.client.googleapis.auth.oauth2.GoogleCredential.fromStream(GoogleCredential.java:226)
    at n.a.test.Main.getAccessToken(Main.java:51)
    at n.a.test.Main.main(Main.java:74)



private String getAccessToken() {
        fileInputStream = Main.class.getResourceAsStream("/serviceAccountKey.json");
        readFile();
        GoogleCredential googleCredential = null;
        try {
            googleCredential = GoogleCredential.fromStream(fileInputStream)
                    .createScoped(Arrays.asList("https://www.googleapis.com/auth/firebase.messaging"));
            googleCredential.refreshToken();
        } catch (IOException e) {
            e.printStackTrace();
        }       
        return googleCredential.getAccessToken();
    }

它在这一行抱怨:googleCredential = GoogleCredential.fromStream(fileInputStream)但是readFile()方法我打印了我的serviceAccountKey.json文件,因此fileInputStream不为空。

serviceAccountKey.json文件的内容是:

{
  "type": "service_account",
  "project_id": "test",
  "private_key_id": "test",
  "private_key": "-----BEGIN PRIVATE KEY-----\nbig string\n-----END PRIVATE KEY-----\n",
  "client_email": "sample@test.iam.gserviceaccount.com",
  "client_id": "numbers",
  "auth_uri": "https://accounts.google.com/o/oauth2/auth",
  "token_uri": "https://accounts.google.com/o/oauth2/token",
  "auth_provider_x509_cert_url": "https://www.googleapis.com/oauth2/v1/certs",
  "client_x509_cert_url": "certs_url.iam.gserviceaccount.com"
}

0 个答案:

没有答案