How Do I Fetch Name And Email Using Facebook Sdk
I am using a TextView to show Name and Email of logged in facebook user, but i really don't know How do I fetch Name and Email ? private void onSessionStateChange(Session session,
Solution 1:
You can get the name and email as below:
// use their Facebook infoJSONObject json = Util.parseJson(facebook.request("me"));
String facebookID = json.getString("id");
String firstName = json.getString("first_name");
String lastName = json.getString("last_name");
Toast.makeText(uiActivity,"Thank you for Logging In, "
+ firstName + " "
+ lastName + "!"
, Toast.LENGTH_SHORT).show();
Solution 2:
This Is An Working Example For facebook Sdk 4+ Also You Can Follow This Link
This Is Your XML
<LinearLayoutxmlns:android="http://schemas.android.com/apk/res/android"xmlns:tools="http://schemas.android.com/tools"xmlns:facebook="http://schemas.android.com/apk/res-auto"android:layout_width="match_parent"android:layout_height="match_parent"android:orientation="vertical"><com.facebook.login.widget.LoginButtonandroid:id="@+id/connectWithFbButton"android:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_centerInParent="true"android:layout_gravity="center_horizontal"android:text=" connect_with_facebook" /></LinearLayout>
put this in onCreate
privateLoginButton loginButton;
CallbackManager callbackManager;
loginButton = (LoginButton) findViewById(R.id.connectWithFbButton);
loginButton.setReadPermissions(Arrays.asList("public_profile", "email", "user_birthday"));
loginButton.registerCallback(callbackManager, newFacebookCallback<LoginResult>() {
@OverridepublicvoidonSuccess(LoginResult loginResult) {
// App code
pDialog = newProgressDialog(MainActivity.this);
pDialog.setMessage("Please Wait..");
pDialog.setIndeterminate(false);
pDialog.setCancelable(true);
pDialog.show();
GraphRequest request = GraphRequest.newMeRequest(
loginResult.getAccessToken(),
newGraphRequest.GraphJSONObjectCallback() {
@OverridepublicvoidonCompleted(
JSONObject object,
GraphResponse response) {
pDialog.dismiss();
Log.d("Response",response.getJSONObject().toString());
if (response.getError() != null) {
// handle error
} else {
String email = object.optString("email");
String fname = object.optString("fname");
String lname = object.optString("lname");
Log.d("Email",email);
Log.d("fname",fname);
Log.d("lname",lname);
// Log.d("Response", response.getInnerJsobject.toString());
}
}
});
Bundle parameters = newBundle();
parameters.putString("fields", "id,name,email,gender, birthday");
request.setParameters(parameters);
request.executeAsync();
}
@OverridepublicvoidonCancel() {
// App codeLog.d("LoginActivity", "cancel");
}
@OverridepublicvoidonError(FacebookException exception) {
// App codeLog.d("LoginActivity", exception.getCause().toString());
}
});
In You OnActivityResult Write Following
@OverrideprotectedvoidonActivityResult(int requestCode, int responseCode, Intent intent) {
callbackManager.onActivityResult(requestCode, responseCode, intent);
}
Solution 3:
Refer this: for details here
privateclassSessionStatusCallbackimplementsSession.StatusCallback {
privateString fbAccessToken;
@Overridepublicvoidcall(Session session, SessionState state, Exception exception) {
updateView();
if (session.isOpened()) {
fbAccessToken = session.getAccessToken();
// make request to get facebook user infoRequest.executeMeRequestAsync(session, newRequest.GraphUserCallback() {
@OverridepublicvoidonCompleted(GraphUser user, Response response) {
Log.i("fb", "fb user: "+ user.toString());
String fbId = user.getId();
String fbAccessToken = fbAccessToken;
String fbName = user.getName();
String gender = user.asMap().get("gender").toString();
String email = user.asMap().get("email").toString();
Log.i("fb", userProfile.getEmail());
}
});
}
}
}
Post a Comment for "How Do I Fetch Name And Email Using Facebook Sdk"