ios - todavia - Comprobando si el usuario ha modificado el permiso de Facebook para la aplicación
no se configuro la aplicacion. esta aplicacion todavia esta en desarrollo parchis (3)
Estoy usando Facebook
para crear un nuevo usuario o iniciar sesión en Parse .
- El usuario inicia sesión en la aplicación con el inicio de sesión de Facebook
- El usuario es rápido para aceptar los permisos.
- El usuario acepta todos los permisos que solicitó la aplicación.
4. Permiso eliminado por el usuario para la aplicación (eliminar la aplicación de Facebook)
Me pregunto cuál es la forma en que podemos verificar si el usuario ha cambiado el estado de autorización de la aplicación en Facebook.
¿Cómo lo verifico? ¿Cómo sabemos que ya no está conectado?
FBSDKAccessToken.currentAccessToken();
no hace el trabajo, ya que solo puede verificar si el token existe o no en el dispositivo.
IE: el usuario va a la configuración de la aplicación de Facebook y elimina la aplicación de la lista.
ps: Por favor, ayuda a votar esta pregunta, ya que es realmente difícil encontrar la solución. ¡¡Gracias!!
Gracias
Creo que puedes encontrar la respuesta que estás buscando aquí:
https://developers.facebook.com/docs/facebook-login/ios/permissions
Usted podría:
1) Compruebe los errores usted mismo:
let token = FBSDKAccessToken.currentAccessToken()
if token.hasGranted("publish_actions") //Or whatever other permission you''re checking
2) Realice alguna acción de todos modos y verifique el error:
if error.userInfo[FBSDKGraphRequestErrorGraphErrorCode] == 200
{
//Handle missing permissions here
}
Supongo que currentAccessToken
se almacenaría en la currentAccessToken
caché de la última vez que currentAccessToken
sesión, por lo que la segunda opción podría ser el camino a seguir.
Puede configurar una URL de Deauthorize Callback para su aplicación. Por lo tanto, deberá crear un servicio de back-end que pueda gestionar las solicitudes HTTP POST entrantes desde Facebook una vez que el usuario desautorice su aplicación.
Ver
- https://developers.facebook.com/docs/facebook-login/manually-build-a-login-flow/v2.4#deauth-callback
para detalles.
Manejo de una sesión invalidada
No podemos saber si la sesión de Facebook en caché es válida hasta que intentemos realizar una solicitud a la API. Una sesión puede invalidarse si un usuario cambia su contraseña o revoca los privilegios de la aplicación. Cuando esto sucede, el usuario debe cerrar la sesión. Podemos identificar un error de sesión no válido dentro de un controlador de finalización FBSDKGraphRequest y automáticamente desconectar al usuario.
FBSDKGraphRequest *request = [[FBSDKGraphRequest alloc] initWithGraphPath:@"me" parameters:nil];
[request startWithCompletionHandler:^(FBSDKGraphRequestConnection *connection, id result, NSError *error) {
if (!error) {
// handle successful response
} else if ([[error userInfo][@"error"][@"type"] isEqualToString: @"OAuthException"]) { // Since the request failed, we can check if it was due to an invalid session
NSLog(@"The facebook session was invalidated");
[PFFacebookUtils unlinkUserInBackground:[PFUser currentUser]];
} else {
NSLog(@"Some other error: %@", error);
}
}];