Skip to content Skip to sidebar Skip to footer

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"