我正在开发一个使用OAuth2和Google客户端库(位于Appengine和GWT BTW)上访问Google API(从Calendar API开始)的应用程序.
@H_301_24@解决方法
我实现了我的OAuth2Call后退servlet,扩展了Google AbstractAppEngineAuthorizationCodeCallbackServlet.
我有工作,我可以访问,可以查看日历等,但有两个问题:
1)我没有获得刷新令牌,尽管显式请求离线访问:
public static GoogleAuthorizationCodeFlow newFlow( String scope ) throws IOException { GoogleAuthorizationCodeFlow.Builder builder = new GoogleAuthorizationCodeFlow.Builder( HTTP_TRANSPORT,JSON_FACTORY,getClientSecrets(),Collections.singleton( scope ) ); builder.setCredentialStore( new AppEngineCredentialStore() ).setAccessType("offline"); return builder.build(); }
> Class Credential.Builder
> Class CredentialStoreRefreshListener
但是我看不到添加刷新监听器的位置.与Credential.Builder类不同,GoogleAuthorizationCodeFlow.Builder类中没有这样的方法
编辑
在调试代码之后,当证书回来(在onSuccess()方法中)似乎有一个RefreshListener设置已经…..所以也许这是默认情况下,我唯一的问题是我没有得到refresh_token,尽管要求它.
也可能需要在Google API控制台中查看设置?