使用App Engine中的GoogleCredentials类检索访问令牌

时间:2018-01-30 15:31:08

标签: google-app-engine google-oauth

我在Google App Engine应用程序中使用了库 com.google.auth:google-auth-library-oauth2-http:0.9.0 。我的应用程序使用其默认应用程序引擎服务帐户向另一个应用程序发出请求我有很多用户需要将他们的令牌缓存一小时。问题是我在发出请求之前不知道如何恢复访问令牌。

credential = GoogleCredentials.getApplicationDefault()
    .createScoped(scopes)
    .createDelegated(user).toBuilder().build();

此时访问令牌为空。

credential.getAccessToken()

如果我更新令牌以检索新的访问令牌,则会发生错误:

credential.refreshAccessToken();

OAuth2Credentials实例不支持更新访问令牌。您必须使用具有新访问令牌的实例或与更新兼容的派生类型。

请求是使用google-api-client库。

import com.google.api.client.http.*;
import com.google.api.client.extensions.appengine.http.UrlFetchTransport; 
import com.google.auth.http.HttpCredentialsAdapter;

HttpRequestFactory factory = new UrlFetchTransport().createRequestFactory(new 
HttpCredentialsAdapter(credential));

感谢。

0 个答案:

没有答案