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"