0

Android アプリケーションで oAuth を使用してログインしています。ログインに成功した後、ユーザー名またはメールアドレスを抽出したいですか? それを行う方法はありますか?はいの場合 - どのように?

私はこれを見つけました:OAuthアクセストークンを使用してGmailユーザー名を抽出しています が、実際にはその使用方法がわかりません

4

1 に答える 1

0

まあ、私はインターネットを最後まで掘り下げて、これを思いつきました:

 private String usernameReader() {
        String jsonOutput = "";
        try {
            jsonOutput = makeSecuredReq(Constants.API_REQUEST, getConsumer(this.prefs));
            JSONObject jsonResponse = new JSONObject(jsonOutput);
            JSONObject m = (JSONObject) jsonResponse.get("feed");
            JSONObject email = (JSONObject) m.get("id");
            jsonOutput=email.getString("$t");
        } catch (Exception e) {
            Log.e("errroro", "Error executing request", e);
            //  console.setText("Error retrieving contacts : " + jsonOutput);
        }
        return jsonOutput;
    }

    private String makeSecuredReq(String url, OAuthConsumer consumer) throws Exception {
        DefaultHttpClient httpclient = new DefaultHttpClient();
        HttpGet request = new HttpGet(url);
        Log.i("Requesting", "Requesting URL : " + url);
        consumer.sign(request);
        HttpResponse response = httpclient.execute(request);
        Log.i("statusLine", "Statusline : " + response.getStatusLine());
        InputStream data = response.getEntity().getContent();
        BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(data));
        String responeLine;
        StringBuilder responseBuilder = new StringBuilder();
        while ((responeLine = bufferedReader.readLine()) != null) {
            responseBuilder.append(responeLine);
        }
        // Log.i(C.TAG,"Response : " + responseBuilder.toString());
        return responseBuilder.toString();
    }

    private OAuthConsumer getConsumer(SharedPreferences prefs) {
        String token = prefs.getString(OAuth.OAUTH_TOKEN, "");
        String secret = prefs.getString(OAuth.OAUTH_TOKEN_SECRET, "");
        OAuthConsumer consumer = new CommonsHttpOAuthConsumer(Constants.CONSUMER_KEY, Constants.CONSUMER_SECRET);
        consumer.setTokenWithSecret(token, secret);
        return consumer;
    }

これは、このhttp://androidwarzone.blogspot.com/2011/07/android-oauth-full-example-with-source.htmlのわずかに変更されたバージョンです。

それにもかかわらず、あなたの時間と努力に対してウィリアム・カーターに感謝します.

于 2013-05-15T19:14:28.697 に答える