Je veux avoir une connexion facebook en utilisant le graphique Api parce que je veux user_birthday et user_location. Avant que j'utilise ce lien pour me connecter: http://www.androidhive.info/2012/03/android-facebook-connect-tutorial/facebook connexion en utilisant le graphique Api
Mais je n'obtenais pas d'informations supplémentaires comme la date de naissance et l'emplacement. Je m'approche donc du graphique Api. Mais n'a trouvé aucun tutoriel pour cela. J'ai essayé un lien et construit du code mais obtenais une session nulle. Je suis sûr que c'est un problème de mise en œuvre. Voici mon code:
fbLogin.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
try {
openActiveSession(LoginScreenActivity.this, true, fbStatusCallback, Arrays.asList(
new String[] { "email", "user_location", "user_birthday"}), savedInstanceState);
}
catch (Exception e) {
Log.i("exception", e.getMessage());
}
Intent intent=new Intent(LoginScreenActivity.this,DealGaliTabActivity.class);
startActivity(intent);
}
});
private Session openActiveSession(Activity activity, boolean allowLoginUI,
StatusCallback callback, List<String> permissions, Bundle savedInstanceState) {
OpenRequest openRequest = new OpenRequest(activity)
.setPermissions(permissions).setLoginBehavior(SessionLoginBehavior
.SSO_WITH_FALLBACK).setCallback(callback)
.setDefaultAudience(SessionDefaultAudience.FRIENDS);
Session session = Session.getActiveSession();
Log.d("session", "" + session);
if (session == null) {
Log.d("sussion_Null", "" + savedInstanceState);
if (savedInstanceState != null) {
session = Session.restoreSession(this, null, fbStatusCallback, savedInstanceState);
}
session = Session.openActiveSessionFromCache(LoginScreenActivity.this);
Session.setActiveSession(session);
Log.d("sessionSet", "" + session);
if (session.getState().equals(SessionState.CREATED_TOKEN_LOADED) || allowLoginUI) {
session.openForRead(openRequest);
return session;
}
}
return session;
}
@Override
public void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
Session.getActiveSession().onActivityResult(this, requestCode, resultCode, data);
}
private Session.StatusCallback fbStatusCallback = new Session.StatusCallback() {
public void call(Session session, SessionState state, Exception exception) {
if (state.isOpened()) {
Request.newMeRequest(session, new Request.GraphUserCallback() {
public void onCompleted(GraphUser user, Response response) {
if (response != null) {
Log.i("Graphresponse", response.toString());
try{
get_id = user.getId();
get_name = user.getName();
get_gender = (String) user.getProperty("gender");
get_email = (String) user.getProperty("email");
get_birthday = user.getBirthday();
get_locale = (String) user.getProperty("locale");
get_location = user.getLocation().toString();
Log.d("GraphSelected", user.getId() + "; " +
user.getName() + "; " +
(String) user.getProperty("gender") + "; " +
(String) user.getProperty("email") + "; " +
user.getBirthday()+ "; " +
(String) user.getProperty("locale") + "; " +
user.getLocation());
} catch(Exception e) {
e.printStackTrace();
Log.d("GraphException", e.getMessage());
}
}
}
});
}
}
};
Je suis également ne reçois pas l'écran de facebook pour la première fois login..please me suggérer une solution.