Quando crea un account o effettua l'accesso alla tua app tramite Facebook Login, l'utente può decidere di concedere le autorizzazioni che hai richiesto o di negarle, a eccezione di quelle relative al profilo pubblico. Questo accade quando non si sente a suo agio nel condividere con la tua app queste informazioni o quando non capisce come saranno usate per migliorarne l'esperienza.
È importante che la tua app rispetti la decisione dell'utente di negare le autorizzazioni pur offrendo la miglior esperienza possibile.
In generale, la tua app può gestire la situazione in tre modi:
Se un'autorizzazione non è necessaria per il corretto funzionamento dell'app, la cosa più semplice da fare è rispettare la decisione dell'utente di negarla offrendo l'accesso all'app.
Nell'esempio qui sotto, Flick Finder sarebbe in grado di offrire consigli migliori sui film avendo accesso all'autorizzazione user_likes
, ma essendo stata negata dall'utente saranno mostrati consigli più generici.
Si tratta dell'opzione più semplice, che offre un'esperienza nel rispetto delle scelte di chi non intende concedere determinate autorizzazioni.
È possibile che l'utente neghi un'autorizzazione poiché non capisce la necessità della tua app di usarla. In questo caso, puoi mostrare una finestra che spiega perché hai bisogno di queste informazioni e come saranno usate per migliorarne l'esperienza.
Nell'esempio qui sotto, Flick Finder mostra una finestra che spiega come, attraverso l'indirizzo e-mail, l'app può inviare all'utente aggiornamenti sulla disponibilità di nuovi film. Con il pulsante "Add Email" (Aggiungi e-mail) si torna al flusso Facebook Login in cui è possibile concedere l'autorizzazione email
.
In questo esempio, l'utente ha comunque la possibilità di negare l'autorizzazione email
.
Questa strategia può essere usata per le autorizzazioni necessarie o particolarmente utili al corretto funzionamento della tua app.
Le informazioni più semplici possono essere raccolte in autonomia.
In questo esempio, Flick Finder desidera conoscere il compleanno dell'utente per consigliare film adatti all'età. Se la condivisione del compleanno è stata negata all'accesso con Facebook, Flick Finder potrà comunque creare un'area in cui raccogliere queste informazioni all'interno dell'app, indipendentemente dal flusso Facebook Login. Consigliamo di usare questa opzione quando l'utente avrà avuto modo di familiarizzare con l'app, così da capire come l'autorizzazione può migliorarne l'esperienza.
Alcune delle informazioni che è possibile raccogliere in questo modo sono user_hometown
, user_location
, user_birthday
o email
.
Quando le autorizzazioni vengono negate durante il flusso Facebook Login, l'app può facilmente individuarle e gestirle tramite una delle strategie descritte in precedenza.
Su Android, puoi chiamare il metodo getDeclinedPermissions
dell'oggetto AccessToken
nell'SDK di Facebook per Android.
Su iOS, puoi chiamare il metodo [FBSDKAccessToken declinedPermissions]
nell'SDK di Facebook per iOS.
Per individuare le autorizzazioni negate, puoi chiamare il segmento permissions
nell'oggetto User
dell'API Graph. Raccoglile iterando la risposta:
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()) });
Per individuare le autorizzazioni negate, puoi chiamare il segmento permissions
nell'oggetto User
dell'API Graph:
GET https://graph.facebook.com/me/permissions?access_token=USER_ACCESS_TOKEN
In questo modo otterrai una risposta simile alla seguente:
{ "data": [ { "permission": "user_birthday", "status": "granted" }, { "permission": "public_profile", "status": "granted" }, { "permission": "email", "status": "declined" } ]}
Questo risultato comunicherà all'app che le autorizzazioni user_birthday
e public_profile
sono state concesse ma che email
è stata negata.
Saper gestire le autorizzazioni negate è importante per offrire la miglior esperienza possibile con Facebook Login.
Implementando una delle strategie indicate puoi assicurarti che chi scarica e installa la tua app sarà in grado di effettuare l'accesso senza imbattersi in un'esperienza discontinua o frustrante, con un impatto negativo sulla reputazione e sul punteggio della tua app negli store.