Problema de sesión de Android Facebook
He utilizado el siguiente código para la autenticación de Facebook y está funcionando bien, pero cuando he cancelado la autenticación y trató de autenticar de nuevo la aplicación se estrelló y el registro fue causado por: java.lang.UnsupportedOperationException: Session: an attempt was made to open an already opened session.
En depuración conseguí como esto
{Session state:CREATED, token:{AccessToken token:ACCESS_TOKEN_REMOVED permissions:[]}, appId:xxxxxxxxxxxxxxx}
¿Cómo puedo resolver este problema.Por favor, ayúdame.Gracias de antemano
- Uso del API de logro de Facebook en Android
- ToByteArray () no se resolverá para el inicio de sesión de facebook
- Cómo funciona el cierre de sesión en Facebook SDK Android
- Iniciar sesión con el SDK de Android de Facebook y Proguard
- Notificación de empuje no mostrada al usuario para la función APPINVITE en Facebook SDK para Android
private void askFacebbokAuthentication() { Session session = Session.getActiveSession(); if (session.isOpened()) { facebook = true; if (!hasPublishPermission()) { session.requestNewPublishPermissions(new NewPermissionsRequest( MyActivity.this, PERMISSIONS)); } } else { Session.OpenRequest openRequest = null; openRequest = new Session.OpenRequest(MyActivity.this); if (openRequest != null) { openRequest.setDefaultAudience(SessionDefaultAudience.FRIENDS); if (!hasPublishPermission()) { openRequest.setPermissions(PERMISSIONS); } session.openForPublish(openRequest); } } }
- Facebook anuncios nativos en reciclar view android
- Autenticación de Facebook sin botón de inicio de sesión
- Se le pide al usuario las credenciales de inicio de sesión durante la reautorización
- No se pudo encontrar Facebook SDK.apk
- No se puede reloginar con las credenciales de Facebook después de cerrar la sesión
- Actualizado - Android Facebook api 3.0 error: No se puede llamar a LoginActivity con un paquete de llamada nula
- La aplicación de Android tiene una marca de exclamación roja en Eclipse después de importar la biblioteca de Facebook
- No se puede ejecutar dex: varios archivos dex definen Lcom / facebook / android / AsyncFacebookRunner $ 1;
Yo también tenía el mismo problema, pero he resuelto con estas líneas. A mi entender, no podemos solicitar una sesión para nuevos permisos que ya está abierta.
Session session = new Session(this); Session.setActiveSession(session); session.openForRead(new Session.OpenRequest(this).setCallback(callback).setPermissions(Arrays.asList("your_permissions")));
Espero que ya hayas añadido debajo de la línea en onActivityResult()
Session.getActiveSession().onActivityResult(this, requestCode, resultCode, data);
Si la Sesión no está abierta ni cerrada, creo que es mejor que Session.openActiveSession ()
Este snipped es copiado-pegado del proyecto de ejemplo de Facebook SDK SessionLoginSample, LoginUsingActivityActivity # onClickLogin ()
private void onClickLogin() { Session session = Session.getActiveSession(); if (!session.isOpened() && !session.isClosed()) { session.openForRead(new Session.OpenRequest(this).setCallback(statusCallback)); } else { Session.openActiveSession(this, true, statusCallback); } }
Tenga en cuenta que la sesión # openActiveSession () también crea una sesión bajo el capó, que está bien. Desde https://developers.facebook.com/docs/technical-guides/iossdk/session/#lifecycle :
Las sesiones sólo se pueden abrir una vez. Cuando se cierra una sesión, no se puede volver a abrir. En su lugar, debe crearse una nueva sesión. Las aplicaciones típicas solo requieren una sesión activa en cualquier momento. El SDK de Facebook proporciona métodos de sesión activos estáticos que se encargan de abrir nuevas instancias de sesión.
- Pausa de la aplicación / estado de reanudación
- Android jUnit Test java.lang.NoClassDefFoundError: android / base de datos / sqlite / SQLiteOpenHelper