2013-02-19 153 views
4

我正在使用Google API Java客户端http://code.google.com/p/google-api-java-client/,并且能够成功获取Android的访问令牌。使用Google API Java客户端库刷新令牌

// Google Accounts 
credential = GoogleAccountCredential.usingOAuth2(this, CalendarScopes.CALENDAR); 
SharedPreferences settings = getPreferences(Context.MODE_PRIVATE); 
credential.setSelectedAccountName(settings.getString(PREF_ACCOUNT_NAME, null)); 

因为我希望我的web服务器进行离线API调用,我需要一个刷新令牌。我一直在广泛搜索,还没有想出如何去做。

理想情况下,我倾向于通过WebView使用Google API Java客户端来获取刷新令牌(无需输入用户名或密码)。

任何帮助,将不胜感激!

回答

0

你需要的时候你开始授权流程设置如下:

  • 审批提示=力
  • 访问类型=假

有了这些PARAMS设置,谷歌将返回刷新令牌和图书馆将处理刷新。这适用于我:

new GoogleAuthorizationCodeFlow.Builder(HTTP_TRANSPORT, JSON_FACTORY, getClientCredential(), 
       Arrays.asList(SCOPES)).setCredentialStore(new OAuth2CredentialStore()).setAccessType("offline") 
       .setApprovalPrompt("force").build(); 
+0

感谢您的帮助。这是否与帐户选择器一起工作(即它是否适用于GoogleAccountCredential?) – 2013-03-01 19:49:56

+0

我想,因为GoogleAccountCredential实现了HttpRequestInitializer。但尝试它有助于找出;) – koma 2013-03-02 00:16:29

+0

我不知道如何将此与GoogleAccountCredential,任何提示进行整合? :( – Goddchen 2013-03-05 09:21:01

相关问题