我正在使用google-api-java-client版本1.8-beta进行oAuth2身份验证与Google帐户。一切正常,直到我得到GoogleTokenResponse对象,它具有访问令牌但没有刷新令牌。 要构建请求URL我的用户下面的方法:获取null刷新令牌
...
googleAuthenticationUrl = new GoogleAuthorizationCodeRequestUrl(CLIENT_ID, callBackUrl, scopes).build();
...
当获取请求令牌我在此行中访问辅币:
...
GoogleTokenResponse tokenResponse = new GoogleAuthorizationCodeTokenRequest(new NetHttpTransport(), new JacksonFactory(), CLIENT_ID, CLIENT_SECRET, request.getParameter(CODE_URL_PARAM), callBackUrl).execute();
...
返回GoogleTokenResponse对象不包含刷新令牌:
{"access_token":"ya29.AH..etc...9-Y","expires_in":3600,"token_type":"Bearer"}
您能否在这个问题上抛出我的光芒?非常感谢您的帮助!
在GoogleAuthorizationCodeFlow.Builder:升级警告:之前的1.10版本默认为{@code“offline”}。但是,从版本1.10开始,它是{@code null},这意味着用于Web应用程序的“在线”代码。为了保持先前的行为,您需要显式调用setAccessType(“offline”)}。 – koma 2012-08-19 01:27:01
如果你(PapelPincel)写的(取自Google开发者页面)是正确的,我会说这不足以“在令牌过期前自动刷新令牌”(如https://developers.google.com/oauthplayground/说的)。那么,如何在后台刷新访问令牌,而不要求其他时间给用户做出新的授权? – Aerox 2014-06-09 20:04:42