无法使用GoogleCredentials获取访问令牌

时间:2017-06-14 23:57:02

标签: google-api google-oauth-java-client

我试图使用我的服务帐户JSON文件获取访问令牌。但是,我无法获得访问令牌。

@Html.Raw(str)

我每次都得到GoogleCredential googleCredential = GoogleCredential.fromStream(new FileInputStream(serviceAccountJsonFile)); System.out.print(googleCredential.getAccessToken()); 。 我可以在Python API中使用相同的凭据。

如果我在这里遗漏了某些东西,有人能指出我吗?

1 个答案:

答案 0 :(得分:0)

所以我自己解决了这个问题,方法是在getToken之前添加以下命令:

credential.refreshToken()

您的代码如下:

GoogleCredential googleCredential = GoogleCredential.fromStream(new FileInputStream(serviceAccountJsonFile));
credential.refreshToken();
System.out.print(googleCredential.getAccessToken());

此文件未在Google网站上正确记录,但添加后,效果很好,并且结果以实际值显示。

我遇到的其他错误是“ com.google.common.io.ByteStreams.exhaust(Ljava / io / InputStream;)J”,为了解决该错误,我必须更正我对这个依赖项:

<dependency>
 <groupId>com.google.api-client</groupId>
 <artifactId>google-api-client</artifactId>
 <version>1.31.1</version>
</dependency>

可以找到参考文献here

我希望这可以帮助您交配!