如何使用facebook sdk在android中获取facebook用户的电子邮件 [英] How to get email of facebook user using facebook sdk in android
本文介绍了如何使用facebook sdk在android中获取facebook用户的电子邮件的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
尝试获取Facebook用户的详细信息,如姓名,位置和电子邮件。我可以获取名称和位置,但电子邮件没有得到。检查开发人员页面电子邮件需要许可。我没有得到如何在我的代码中添加权限,请帮助我。谢谢
Trying to get facebook user details like name,location and email. I am able to get name and location but email is not getting.After checking developers page email requires permission. I didn't get how to add permission in my code please help me.Thanks
public class MainActivity extends ActionBarActivity {
// Create, automatically open (if applicable), save, and restore the
// Active Session in a way that is similar to Android UI lifecycles.
private UiLifecycleHelper uiHelper;
private View otherView;
private static final String TAG = "MainActivity";
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
// Set View that should be visible after log-in invisible initially
otherView = (View) findViewById(R.id.other_views);
otherView.setVisibility(View.GONE);
// To maintain FB Login session
uiHelper = new UiLifecycleHelper(this, callback);
uiHelper.onCreate(savedInstanceState);
}
// Called when session changes
private Session.StatusCallback callback = new Session.StatusCallback() {
@Override
public void call(Session session, SessionState state,
Exception exception) {
onSessionStateChange(session, state, exception);
}
};
// When session is changed, this method is called from callback method
private void onSessionStateChange(Session session, SessionState state,
Exception exception) {
final TextView name = (TextView) findViewById(R.id.name);
final TextView gender = (TextView) findViewById(R.id.gender);
final TextView location = (TextView) findViewById(R.id.location);
final TextView email = (Textview) findViewbyId(R.id.email);
// When Session is successfully opened (User logged-in)
if (state.isOpened()) {
Log.i(TAG, "Logged in...");
// make request to the /me API to get Graph user
Request.newMeRequest(session, new Request.GraphUserCallback() {
// callback after Graph API response with user
// object
@Override
public void onCompleted(GraphUser user, Response response) {
if (user != null) {
// Set view visibility to true
otherView.setVisibility(View.VISIBLE);
// Set User name
name.setText("Hello " + user.getName());
// Set Gender
gender.setText("Your Gender: "
+ user.getProperty("gender").toString());
location.setText("Your Current Location: "
+ user.getLocation().getProperty("name")
.toString());
email.setText("Your email: "
+ user.getProperty("email").toString());
}
}
}).executeAsync();
} else if (state.isClosed()) {
Log.i(TAG, "Logged out...");
otherView.setVisibility(View.GONE);
}
}
@Override
public void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
uiHelper.onActivityResult(requestCode, resultCode, data);
Log.i(TAG, "OnActivityResult...");
}
@Override
public void onResume() {
super.onResume();
uiHelper.onResume();
}
@Override
public void onPause() {
super.onPause();
uiHelper.onPause();
}
@Override
public void onDestroy() {
super.onDestroy();
uiHelper.onDestroy();
}
@Override
public void onSaveInstanceState(Bundle outState) {
super.onSaveInstanceState(outState);
uiHelper.onSaveInstanceState(outState);
}
}
推荐答案
请使用facebook图形API。
网址: https://graph.facebook.com/me?access_token = session.getAccessToken();
Please use facebook graph API. URL : https://graph.facebook.com/me?access_token=session.getAccessToken();
代码:
try {
HttpClient httpclient = new DefaultHttpClient();
HttpGet httppost = new HttpGet("https://graph.facebook.com/me?access_token="
+ accessToken);
HttpResponse response = httpclient.execute(httppost);
BufferedReader rd = new BufferedReader(new InputStreamReader(
response.getEntity().getContent()));
String line = "";
StringBuilder sb = new StringBuilder();
while ((line = rd.readLine()) != null) {
sb.append(line + "\n");
}
String result = sb.toString();
JSONObject mJsonObj = new JSONObject(result);
mEmailId = mJsonObj.optString("email");
mProfileId = mJsonObj.optString("id");
} catch (Exception ex) {
}
这篇关于如何使用facebook sdk在android中获取facebook用户的电子邮件的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文