1

私はGoogleリーダークライアントを作成するAndroidプロジェクトに参加しています。私は組み込みのアカウントクレデンシャルを使用し、その点で公式のGoogleリーダーアプリにできるだけ近づきます。

私は一週間以来問題に苦しんでいて、それを解決する方法を見つけることができません。authtokentype "reader"を使用して、AccountManagerから認証トークンを取得することができました。トークンの形式は

DQAAAOcAAACJAmAkHEpPnaP-v7HxPYyz3XtCNwTiFLUsqYXfLQvCko4AqUyY213U81fXeNZC3VVArBaEsJJFcRXDmczrEhDquxiJiWSp7eM9T8Bs2VV3uqFwE7irrfarKyBH-oVn2nZxKc3wcugqa7k3p4KCotz48cQRslDQhSZj1AK4hxqO2eu5X8lutffRCPjA6kmgmXhkYA4RuTCxVXbZr0E_ytQteX2VzOlPbqrZ7QD7NiqbeJYODE3pk4BNjHTWtgXAr3J0U7LMdtRh9aC9AJoBp1SNl3jptyzqFfeEjWtVTBQlKtn40vyzMDt0sZoSIaSPquc

トークンを取得したので、非公式のGoogleリーダーAPIでログインするにはどうすればよいですか?私はこのJavaAPIを知っており、ここ、ここ、ここでさまざまなドキュメント見つけまし。これらはすべて、電子メールとパスワードを使用したクライアントログインにのみ重点を置いています。コードサンプルを見つけるたびに、それは次の形式になります

token = someFunctionIAlreadyUse();
someUndocumentedUnknowPersonalFunction(token);

私は簡単な方法を逃していますか?そうでない場合は、APIにアクセスするための詳細な方法をどこで見つけることができますか(Javaで)?

4

1 に答える 1

0

方法を見つけるだけです。android から付与されるトークンは、通常の Google リーダー認証で使用するトークンと同じです。Jsoup を使用し、Android authtoken で動作するように変更した Christian Dadswell のコードを次に示します。

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";
于 2013-01-01T12:26:47.617 に答える