[英]unable to get email and gender and dob in Facebook login android
我在我的應用程序中使用了最新的Facebook sdk,我只能獲取名稱和ID,但這里沒有其他內容,這是我的代碼
enter code here
fb_login.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v)
{
onFblogin();
}
});
// Private method to handle Facebook login and callback
private void onFblogin()
{
// Set permissions
LoginManager.getInstance().logInWithReadPermissions(this, Arrays.asList("public_profile","email","user_birthday","user_about_me"));
LoginManager.getInstance().registerCallback(callbackmanager,
new FacebookCallback<LoginResult>() {
@Override
public void onSuccess(LoginResult loginResult) {
System.out.println("Success");
GraphRequest.newMeRequest(loginResult.getAccessToken(), new GraphRequest.GraphJSONObjectCallback() {
@Override
public void onCompleted(JSONObject json, GraphResponse response) {
if (response.getError() != null) {
// handle error
System.out.println("ERROR");
} else {
System.out.println("Success");
try {
String jsonresult = String.valueOf(json);
System.out.println("JSON Result" + jsonresult);
String id = json.getString("id");
String email = json.getString("email");
//String name = json.getString("name");
//String dob = json.getString("birthday");
//String gender = json.getString("gender");
//String about = json.getString("about");
} catch (JSONException e) {
e.printStackTrace();
}
}
}
}).executeAsync();
}
@Override
public void onCancel() {
Log.d("Tag on cancel","On cancel");
}
@Override
public void onError(FacebookException error) {
Log.d("Tag on error",error.toString());
}
});
}
@Override
public void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
callbackmanager.onActivityResult(requestCode, resultCode, data);
}
我的代碼中缺少什么嗎? 任何幫助,將不勝感激。
//Callback registration
LoginManager.getInstance().registerCallback(callbackManager, new FacebookCallback<LoginResult>() {
@Override
public void onSuccess(LoginResult loginResult) {
GraphRequest request = GraphRequest.newMeRequest(
AccessToken.getCurrentAccessToken(),
new GraphRequest.GraphJSONObjectCallback() {
@Override
public void onCompleted(JSONObject object, GraphResponse response) {
try {
fb_id = object.getString("id");
fb_gender = object.getString("gender");
JSONObject obj1 = object.getJSONObject("picture");
JSONObject obj2 = obj1.getJSONObject("data");
fb_name = object.getString("name");
JSONObject obj = object.getJSONObject("age_range");
fb_age = obj.getString("min");
} catch (JSONException e) {
}
}
});
Bundle parameters = new Bundle();
parameters.putString("fields", "id,name,gender,age_range,picture");
request.setParameters(parameters);
request.executeAsync();
}
@Override
public void onCancel() {
// Do Nothing
}
@Override
public void onError(FacebookException exception) {
// Do Nothing
Log.e("exception", "->" + exception);
}
});
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.