【发布时间】:2012-11-26 12:03:22
【问题描述】:
我正在开发一个使用 OAuth2 访问 Google API(从日历 API 开始)的应用程序和用于该应用程序的谷歌客户端库(在 Appengine 和 GWT BTW 上)。
我已经实现了我的OAuth2Call back 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();
}
2) 我看不到如何设置自动刷新功能。 这些页面描述了这些方法:
但我看不到在哪里添加刷新侦听器。 GoogleAuthorizationCodeFlow.Builder 类中没有这种方法,不像Credential.Builder 类
编辑
在更多地调试代码之后,当凭证返回时(在onSuccess() 方法中)它似乎已经设置了RefreshListener .....所以也许这是他们的默认设置,我唯一的问题是我不是得到refresh_token,尽管要求它。
也许还需要查看 Google API 控制台中的设置?
【问题讨论】:
标签: java google-app-engine oauth-2.0 google-api