2013-01-01 98 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";