2013-01-01 68 views
1

我在一个Android项目中创建一个谷歌阅读器客户端。 我使用内置的帐户凭证,并在这一点上作为官方谷歌阅读器应用程序的关闭。使用Android帐户管理器登录谷歌阅读器

自从一个星期以来我一直在努力解决问题,无法找到如何解决问题。 我设法使用authtokentype“reader”从AccountManager获得一个Auth令牌。 令牌的形式

DQAAAOcAAACJAmAkHEpPnaP-v7HxPYyz3XtCNwTiFLUsqYXfLQvCko4AqUyY213U81fXeNZC3VVArBaEsJJFcRXDmczrEhDquxiJiWSp7eM9T8Bs2VV3uqFwE7irrfarKyBH-oVn2nZxKc3wcugqa7k3p4KCotz48cQRslDQhSZj1AK4hxqO2eu5X8lutffRCPjA6kmgmXhkYA4RuTCxVXbZr0E_ytQteX2VzOlPbqrZ7QD7NiqbeJYODE3pk4BNjHTWtgXAr3J0U7LMdtRh9aC9AJoBp1SNl3jptyzqFfeEjWtVTBQlKtn40vyzMDt0sZoSIaSPquc 

的现在,我有令牌,我怎么登录与非官方谷歌阅读器API? 我知道this java api,并发现各种文件here,herehere。所有这些只强调用电子邮件和密码登录客户端。每当我找到一个代码示例,它的形式是

token = someFunctionIAlreadyUse(); 
someUndocumentedUnknowPersonalFunction(token); 

我错过了一个简单的方法?如果不是,我可以在哪里找到访问api的细节方式(在java中)?

回答

0

只要找出如何做。 android给出的令牌与常规google reader认证中使用的令牌相同。下面是使用Jsoup和修改基督教Dadswell一些代码与Android的authToken工作:

public static String getGoogleToken(String authKey) throws UnsupportedEncodingException, IOException 
{ 
    Document doc = Jsoup.connect(_TOKEN_URL).header("Authorization", _AUTHPARAMS + authKey).userAgent(_USER_AGENT).timeout(4000).get(); 

    // RETRIEVES THE RESPONSE TOKEN 
    String _TOKEN = doc.body().text(); 
    return _TOKEN; 
} 

public static String getUserInfo(String authKey) throws UnsupportedEncodingException, IOException 
{ 
    Document doc = Jsoup.connect(_USER_INFO_URL).header("Authorization", _AUTHPARAMS + authKey).userAgent(_USER_AGENT).timeout(4000).get(); 

    // RETRIEVES THE RESPONSE USERINFO 
    String _USERINFO = doc.body().text(); 
    return _USERINFO; 
} 

和常量:

private static String _USER_AGENT = "YourAppNameHere"; 

private static final String _AUTHPARAMS = "GoogleLogin auth="; 
private static final String _GOOGLE_LOGIN_URL = "https://www.google.com/accounts/ClientLogin"; 
private static final String _READER_BASE_URL = "http://www.google.com/reader/"; 
private static final String _API_URL = _READER_BASE_URL + "api/0/"; 
private static final String _TOKEN_URL = _API_URL + "token"; 
private static final String _USER_INFO_URL = _API_URL + "user-info"; 
private static final String _USER_LABEL = "user/-/label/"; 
private static final String _TAG_LIST_URL = _API_URL + "tag/list"; 
private static final String _EDIT_TAG_URL = _API_URL + "tag/edit"; 
private static final String _RENAME_TAG_URL = _API_URL + "rename-tag"; 
private static final String _DISABLE_TAG_URL = _API_URL + "disable-tag"; 
private static final String _SUBSCRIPTION_URL = _API_URL + "subscription/edit"; 
private static final String _SUBSCRIPTION_LIST_URL = _API_URL + "subscription/list";