Skip to content Skip to sidebar Skip to footer

How To Get User Email On Graphrequest.newmerequest

I have a Facebook login option in my Android app and I am trying to get the user's email unsuccessfully. After the user is logged in, and added to the Parse.com User table (with a

Solution 1:

I guess this is related to a change in the Graph API v2.4 which makes it necessary that you specify every field you want to have returned from the Graph API.

Have a look at my answer at

regarding this

Concerning your actual problem, see

for an example on how to specify the fields for a GraphRequest

GraphRequestrequest= GraphRequest.newMeRequest(
        accessToken,
        newGraphRequest.GraphJSONObjectCallback() {
            @OverridepublicvoidonCompleted(
                   JSONObject object,
                   GraphResponse response) {
                // Application code
            }
        });
Bundleparameters=newBundle();
parameters.putString("fields", "id,name,email");
request.setParameters(parameters);
request.executeAsync();

Solution 2:

Kotlin

Also, avoids the error of Interface GraphJSONObjectCallback does not have constructors, which may pop up if you automatically covert the Java version to Kotlin.

val request = GraphRequest.newMeRequest(
          token,
          object : GraphRequest.GraphJSONObjectCallback {
            overridefunonCompleted(
              obj: JSONObject?,
              response: GraphResponse?
            ) {

              try {
                // Save user email to variable
                email = obj!!.getString("email")
                firstName = obj.getString("first_name")
                lastName = obj.getString("last_name")
                handleFacebookAccessToken(token)
              }
              catch (e: JSONException) {
                Toast.makeText(
                  this@MainActivity,
                  "Facebook Authentication Failed.",
                  Toast.LENGTH_LONG
                ).show()
              }
            }
          })

        val parameters = Bundle()
        parameters.putString("fields", "email,first_name,last_name")
        request.parameters = parameters
        request.executeAsync()

Post a Comment for "How To Get User Email On Graphrequest.newmerequest"