Salut, je suis en train de recevoir des informations de la facebook sdk 4 mais sans chance jusqu'à présent :(Android Facebook SDK 4 email retour null
J'espère qu'il ya quelqu'un ici qui peut me aider :)
Le code est juste retour email nul, mais mon compte facebook a un email, et l'application a accès à l'e-mail dans l'examen de l'application de développeur.
Voici mon code:
public class LoginActivity extends Activity {
private CallbackManager callbackManager;
private LoginButton loginButton;
private TextView btnLogin;
private ProgressDialog progressDialog;
User user;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_login);
if(PrefUtils.getCurrentUser(LoginActivity.this) != null){
Intent homeIntent = new Intent(LoginActivity.this, LogoutActivity.class);
startActivity(homeIntent);
finish();
}
}
@Override
protected void onResume() {
super.onResume();
callbackManager=CallbackManager.Factory.create();
loginButton= (LoginButton)findViewById(R.id.login_button);
loginButton.setReadPermissions("public_profile", "email","user_friends", "user_location", "user_birthday", "user_photos");
btnLogin= (TextView) findViewById(R.id.btnLogin);
btnLogin.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
progressDialog = new ProgressDialog(LoginActivity.this);
progressDialog.setMessage("Loading...");
progressDialog.show();
loginButton.performClick();
loginButton.setPressed(true);
loginButton.invalidate();
loginButton.registerCallback(callbackManager, mCallBack);
loginButton.setPressed(false);
loginButton.invalidate();
}
});
}
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
callbackManager.onActivityResult(requestCode, resultCode, data);
}
private FacebookCallback<LoginResult> mCallBack = new FacebookCallback<LoginResult>() {
@Override
public void onSuccess(LoginResult loginResult) {
progressDialog.dismiss();
// App code
final GraphRequest request = GraphRequest.newMeRequest(
loginResult.getAccessToken(),
new GraphRequest.GraphJSONObjectCallback() {
@Override
public void onCompleted(
JSONObject object,
GraphResponse response) {
Log.e("response: ", response + "");
try {
user = new User();
user.facebookID = object.getString("id").toString();
//user.email = object.getString("email");
user.email = object.optString("email");
user.name = object.getString("name").toString();
user.gender = object.getString("gender").toString();
user.birthday = object.getString("birthday").toString();
PrefUtils.setCurrentUser(user,LoginActivity.this);
}catch (Exception e){
e.printStackTrace();
}
Toast.makeText(LoginActivity.this,"welcome "+user.name,Toast.LENGTH_LONG).show();
Intent intent=new Intent(LoginActivity.this,LogoutActivity.class);
startActivity(intent);
finish();
}
});
Bundle parameters = new Bundle();
parameters.putString("fields", "id,name,email,gender,birthday");
request.setParameters(parameters);
request.executeAsync();
}
@Override
public void onCancel() {
progressDialog.dismiss();
}
@Override
public void onError(FacebookException e) {
progressDialog.dismiss();
}
};
}