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

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

这将返回一个看起来格式良好的身份验证令牌。所以在我的 DocsService 上我运行:

service.setAuthSubToken(authToken);

但是,当我尝试使用 API 时,我只是收到 AuthenticationException。关于如何处理这个错误有什么想法吗?

编辑:我确实拥有 USE_CREDENTIALS 权限。

有帮助吗?

解决方案

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

我想到了两个示例,它们对您开始使用适用于 Java 的 Google API 客户端库很有帮助: 日历-v2-atom-android-示例文档-v3-atom-oauth-样本

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

其他提示

您可能还想查看 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

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

不管怎样,我已经开发了一个可以在 Android 上运行的客户端库。我正在 Google Code 上管理该项目-http://code.google.com/p/google-spreadsheet-lib-android/

你可以尝试一下。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top