使用Android AccountManager获取gdata的authtoken

时间:2010-09-27 08:36:11

标签: android gdata-api gdata accountmanager gdata-java-client

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

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

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

service.setAuthSubToken(authToken);

然而,当我尝试使用API​​时,我只获得了AuthenticationException。有关如何处理此错误的任何想法?

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

2 个答案:

答案 0 :(得分:6)

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

有两个示例可以帮助您开始使用适用于Java的Google API客户端库:calendar-v2-atom-android-sampledocs-v3-atom-oauth-sample

披露:我是GData Java Client库和Google API Client Client for Java项目的所有者。

答案 1 :(得分:0)

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

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

你可以尝试一下。