Cuando las personas crean una cuenta o inician sesión en tu aplicación mediante el inicio de sesión con Facebook, tienen la oportunidad de conceder los permisos que solicitas. Sin embargo, también pueden elegir rechazar todos los permisos, excepto el del perfil público. Las personas podrían optar por hacer esto si no se sienten cómodas con la idea de compartir esta información con la aplicación, o si no saben con seguridad cómo se usará su información para mejorar su experiencia.
Cuando las personas eligen rechazar un permiso, es importante que la aplicación respete su decisión y siga ofreciendo una gran experiencia.
En general, una aplicación tiene tres opciones:
En algunos casos, el permiso solicitado no es necesario para que la aplicación funcione. De ser así, lo más sencillo es respetar la negativa y conducir a las personas a la aplicación.
En el ejemplo siguiente, Flickr Finder podría ofrecer mejores recomendaciones de películas si dispone del permiso user_likes
. Sin embargo, como la persona no lo concedió, Flickr Finder se limita a presentar recomendaciones más genéricas.
Esta es la opción más sencilla y respetuosa con las personas que deciden rechazar determinados permisos.
Las personas pueden elegir rechazar un permiso porque no entienden para qué necesita la aplicación esa información. En este caso, la aplicación podría mostrar un cuadro de diálogo que explique esta necesidad y el modo en que mejorará la experiencia.
En el ejemplo siguiente, Flickr Finder muestra un cuadro de diálogo donde explica que con una dirección de correo, la aplicación podrá enviar actualizaciones cuando se tengan nuevas películas disponibles. El botón "Agregar correo electrónico" devuelve a la persona al proceso de inicio de sesión con Facebook, donde puede conceder el permiso email
.
Observa que, en este ejemplo, la persona sigue teniendo la opción de no conceder el permiso email
.
Esta estrategia se puede utilizar para permisos esenciales o muy deseables para el funcionamiento de la aplicación.
Algunos datos son muy sencillos de obtener por cuenta propia.
En este ejemplo, Flickr Finder quiere recopilar la fecha de nacimiento de una persona para ofrecerle películas apropiadas para su edad. Si una persona rechaza compartir la fecha de nacimiento al iniciar sesión con Facebook, Flickr Finder puede crear un espacio donde recopilar esta información dentro de la aplicación, independiente del proceso de inicio de sesión con Facebook. Recomendamos hacerlo cuando la persona haya tenido tiempo de familiarizarse con la aplicación, de modo que advierta mejor cómo el permiso podría mejorar su experiencia.
Algunos ejemplos de la información que se podría recopilar de este modo son user_hometown
, user_location
, user_birthday
e incluso email
.
Cuando las personas rechazan permisos durante un proceso de inicio de sesión con Facebook, la aplicación puede detectarlo fácilmente y aplicar alguna de las estrategias explicadas anteriormente.
En Android, puedes invocar el método getDeclinedPermissions
del objeto AccessToken
en el SDK de Facebook para Android.
En iOS, puedes invocar el método [FBSDKAccessToken declinedPermissions]
en el SDK de Facebook para iOS.
Para detectar permisos rechazados, puedes llamar al perímetro permissions
del objeto User
de la API Graph. Puedes obtener cualquier permiso rechazado iterando la respuesta:
FB.api('/me/permissions', function(response) { var declined = []; for (i = 0; i < response.data.length; i++) { if (response.data[i].status == 'declined') { declined.push(response.data[i].permission) } } alert(declined.toString()) });
Para detectar permisos rechazados, puedes llamar al perímetro permissions
del objeto User
en la API Graph:
GET https://graph.facebook.com/me/permissions?access_token=USER_ACCESS_TOKEN
Lo anterior arroja una respuesta con la forma:
{ "data": [ { "permission": "user_birthday", "status": "granted" }, { "permission": "public_profile", "status": "granted" }, { "permission": "email", "status": "declined" } ]}
Esto indica a la aplicación que la persona concedió los permisos user_birthday
y public_profile
, pero que decidió rechazar el permiso email
.
Manejar el rechazo de permisos con elegancia es importante para ofrecer una gran experiencia de inicio de sesión con Facebook.
Las estrategias aquí descritas garantizan que las personas que descarguen e instalen la aplicación puedan iniciar sesión sin encontrarse con experiencias molestas y frustrantes que afecten a la reputación y la calificación de la aplicación en la tienda.