3

所以我试图同步到谷歌文档,而不必向用户询问他的凭据。我使用此代码获取身份验证令牌:

AccountManager mgr = AccountManager.get(activity);
authToken = mgr.blockingGetAuthToken(account, DocsService.DOCS_SERVICE, true);

这将返回一个格式正确的 auth-token。所以在我的 DocsService 我运行:

service.setAuthSubToken(authToken);

但是,当我尝试使用 API 时,我只会得到一个 AuthenticationException。有关如何处理此错误的任何想法?

编辑:我确实有 USE_CREDENTIALS 权限。

4

3 回答 3

6

问题是返回的令牌是 ClientLogin 令牌,而不是 AuthSub 令牌。更大的问题是 GData Java 客户端库没有正式支持 Android。我们最近在 GData Java 客户端库的主页上添加了一条注释,对于 Android,我们推荐使用Google API Client Library for Java

想到两个示例,它们对您开始使用适用于 Java 的 Google API 客户端库有所帮助:calendar-v2-atom-android-sampledocs-v3-atom-oauth-sample

披露:我是 GData Java 客户端库和用于 Java 项目的 Google API 客户端库的所有者。

于 2010-10-20T12:50:26.453 回答
2

您可能还想查看 Yaniv 的 Google I/O 2011 会议幻灯片/视频,以了解如何在 Android 上访问 GData API。

http://www.google.com/events/io/2011/sessions/best-practices-for-accessing-google-apis-on-android.html

于 2012-03-19T04:46:37.030 回答
0

正如 Yaniv 解释的那样,Gdata Lib 在 Android 中不起作用。我浪费了几个小时没有结果。它看起来很奇怪,它是谷歌的产品,在他们自己的平台(Android)上仍然不受支持。

无论如何,我已经开发了一个适用于 Android 的客户端库。我在谷歌代码上管理项目 - http://code.google.com/p/google-spreadsheet-lib-android/

你可以试一试。

于 2010-12-15T06:05:45.897 回答