Tag: 谷歌的API的Java客户端

访问Google API – GoogleAccountCredential.usingOAuth2 vs GoogleAuthUtil.getToken()

最近,我一直在Android上使用Google API,特别是Analytics,AdSense和Tasks API。 我看过一些Google提供的样本,他们使用这个语句来获得一个GoogleAccountCredential对象 https://code.google.com/p/google-api-java-client/source/browse/tasks-android-sample/src/main/java/com/google/api/services/samples/tasks/android/ TasksSample.java?repo=samples credential = GoogleAccountCredential.usingOAuth2(this, Collections.singleton(TasksScopes.TASKS)); 但是,如果我阅读文档,例如: http://developer.android.com/google/auth/http-auth.html http://developer.android.com/google/play-services/auth.html 他们都提到下面的方法来获取令牌: token = GoogleAuthUtil.getToken(mActivity, mEmail, mScope); 我很困惑在哪个场景以及为什么使用哪一个。 我一直在使用方法号。 1成功,而不需要在喜好中坚持令牌(我想这是由GoogleAccountCredential自动完成的) 谁能告诉我为什么有人会使用第一种方法而不是第二种? 如何在第一个方法中访问身份validation令牌?

OAuth2和Google API:访问令牌过期时间?

我们有一个独立的Java应用程序(请参阅“安装的应用程序”: https : //developers.google.com/accounts/docs/OAuth2 ),它定期运行并使用Google API(更新来自客户数据库/ ldap / …的一些信息) 。 要访问Google API,我们将用户名和密码存储在configuration文件中,这是一种安全风险,客户不喜欢这样做。 所以我们希望使用OAuth2长生存取令牌。 Google OAuth2访问令牌的默认到期时间是什么? 因为我们只有在应用程序中访问令牌,所以当访问令牌到期时,应用程序本身不能刷新它。 就我个人而言,我认为在这种情况下OAuth2的实施不会带来任何重大的好处,但让我们专注于主要问题 – 默认到期时间。

使用HttpRequest.execute()的exception:SingleClientConnManager的使用无效:仍然分配连接

我正在使用谷歌API客户端Java 1.2.1-alpha来执行一个POST请求,并且当我执行()HttpRequest时得到以下的堆栈跟踪。 它发生之后立即捕捉并忽略从以前的POST到同一个URL的403错误,并重新使用传输的后续请求。 (这是在一个循环插入多个条目到相同的ATOM饲料)。 在403之后,我应该做些什么来“清理”? Exception in thread "main" java.lang.IllegalStateException: Invalid use of SingleClientConnManager: connection still allocated. Make sure to release the connection before allocating another one. at org.apache.http.impl.conn.SingleClientConnManager.getConnection(SingleClientConnManager.java:199) at org.apache.http.impl.conn.SingleClientConnManager$1.getConnection(SingleClientConnManager.java:173) at org.apache.http.impl.client.DefaultRequestDirector.execute(DefaultRequestDirector.java:390) at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:641) at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:576) at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:554) at com.google.api.client.apache.ApacheHttpRequest.execute(ApacheHttpRequest.java:47) at com.google.api.client.http.HttpRequest.execute(HttpRequest.java:207) at au.com.machaira.pss.gape.RedirectHandler.execute(RedirectHandler.java:38) at au.com.machaira.pss.gape.ss.model.records.TableEntry.executeModification(TableEntry.java:81) 为什么下面的代码试图获得一个新的连接?