oauth 2.0 -登录到谷歌阅读器使用android帐户管理器



我在一个Android项目中创建一个Google Reader客户端。我想使用内置的帐户凭证,并尽可能接近官方谷歌阅读器应用程序在这一点上。

一个星期以来,我一直在为一个问题苦苦挣扎,却找不到解决它的方法。我设法使用authtokentype"reader"从AccountManager获得认证令牌。令牌的形式为

DQAAAOcAAACJAmAkHEpPnaP-v7HxPYyz3XtCNwTiFLUsqYXfLQvCko4AqUyY213U81fXeNZC3VVArBaEsJJFcRXDmczrEhDquxiJiWSp7eM9T8Bs2VV3uqFwE7irrfarKyBH-oVn2nZxKc3wcugqa7k3p4KCotz48cQRslDQhSZj1AK4hxqO2eu5X8lutffRCPjA6kmgmXhkYA4RuTCxVXbZr0E_ytQteX2VzOlPbqrZ7QD7NiqbeJYODE3pk4BNjHTWtgXAr3J0U7LMdtRh9aC9AJoBp1SNl3jptyzqFfeEjWtVTBQlKtn40vyzMDt0sZoSIaSPquc

现在我有了令牌,我如何登录非官方的Google Reader api ?我知道这个java api,并在这里,这里和这里找到了各种文档。所有这些都只强调客户端登录与电子邮件和密码。每次我找到一个代码样本,它的形式都是

token = someFunctionIAlreadyUse();
someUndocumentedUnknowPersonalFunction(token);

我错过了一个简单的方法吗?如果没有,我在哪里可以找到访问api的详细方法(在java中)?

只是想知道怎么做。android给出的令牌与常规google阅读器认证中使用的令牌相同。以下是Christian Dadswell使用Jsoup的一些代码,并修改为与Android认证令牌一起工作:

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";

最新更新