如何获取离线令牌和刷新令牌以及自动刷新对 Google API 的访问权限
我正在开发一个应用程序,该应用程序使用OAuth2和Google客户端库访问Google API(从Calendal API开始)(在Appengine和GWT BTW上)。
我已经实现了我的后台servlet,扩展了谷歌。OAuth2Call
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控制台中的设置?