Das Android Facebook SDK ruft nach der Anmeldung keinen Rückruf auf
Posted: 16 Jan 2025, 08:58
Ich versuche, in meiner Anwendung eine Klasse zu erstellen, die Facebook-Anmeldungen verarbeitet.
Mein Problem ist, dass sie nicht bei allen Aktivitäten funktioniert.
Bei dieser Aktivität wird der Rückruf nicht aufgerufen.Nachdem die Webansicht zum Anmelden und Autorisieren der Anwendung verworfen wurde, wird der Rückruf nicht ausgelöst.
Der letzte in Logcat ausgegebene Status ist OPENING
Hier ist mein Code:
ist eine Funktion, die die Benutzerdaten in einer gemeinsamen Einstellung speichert.
Stimmt etwas nicht? Die Funktion funktioniert bei einigen Aktivitäten, aber nicht bei ALLEN Aktivitäten.
Mein Problem ist, dass sie nicht bei allen Aktivitäten funktioniert.
Bei dieser Aktivität wird der Rückruf nicht aufgerufen.Nachdem die Webansicht zum Anmelden und Autorisieren der Anwendung verworfen wurde, wird der Rückruf nicht ausgelöst.
Der letzte in Logcat ausgegebene Status ist OPENING
Hier ist mein Code:
Code: Select all
public void doLogin() {
if ((Session.getActiveSession() == null || !Session.getActiveSession().isOpened())) {
List permissions = new ArrayList();
permissions.add("email");
// start Facebook Login
openActiveSession(activity, true, new Session.StatusCallback() {
// callback when session changes state
@Override
public void call(Session session, SessionState state,
Exception exception) {
Log.d("Sessionstate", state.toString());
if (session.isOpened()) {
// make request to the /me API
Request.executeMeRequestAsync(session,
new Request.GraphUserCallback() {
@Override
public void onCompleted(GraphUser user,
Response response) {
if (prgCheckFB.isShowing())
prgCheckFB.dismiss();
if (user != null) {
Log.e("facebookid", id);
doSomething(user);
}
}
});
}
}, permissions);
}
}
private static Session openActiveSession(Activity activity,
boolean allowLoginUI, Session.StatusCallback callback,
List permissions) {
Session.OpenRequest openRequest = new Session.OpenRequest(activity)
.setPermissions(permissions).setCallback(callback);
Session session = new Session.Builder(activity).build();
if (SessionState.CREATED_TOKEN_LOADED.equals(session.getState())
|| allowLoginUI) {
Session.setActiveSession(session);
session.openForRead(openRequest);
return session;
}
return null;
}
Code: Select all
doSomething
Stimmt etwas nicht? Die Funktion funktioniert bei einigen Aktivitäten, aber nicht bei ALLEN Aktivitäten.