0
我在我的android应用程序中使用oAuth登录到它。我想在成功登录后提取用户名或电子邮件地址?有什么办法可以做到吗?如果是 - 如何?如何从oauth获取用户名或电子邮件地址?
我发现这一点:Extracting Gmail username with OAuth access token但真的不知道如何使用它
我在我的android应用程序中使用oAuth登录到它。我想在成功登录后提取用户名或电子邮件地址?有什么办法可以做到吗?如果是 - 如何?如何从oauth获取用户名或电子邮件地址?
我发现这一点:Extracting Gmail username with OAuth access token但真的不知道如何使用它
好,我Digg的网络,直到它的结束,我想出了这一点:
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
不过,谢谢你的威廉卡特你的时间和精力。
您如何首先获得OAuth令牌?如果您从某个第四方应用程序收到它,请忽略此评论。否则,您需要从用户凭证生成令牌*。 [Android文档中的教程](http://developer.android.com/training/id-auth/authenticate.html#RequestToken)应该可以帮助你做到这一点。这些示例涵盖了gmail,因此应该对您有用。如果您刚开始使用OAuth,[本指南](http://hueniverse.com/oauth/)真的可以帮助您解决问题。 – 2013-05-14 22:37:41