Una componente fondamentale nell'avvio della finestra di dialogo Accedi è scegliere a quali dati l'app deve accedere. Negli esempi abbiamo usato il parametro scope
, che determina il modo in cui viene richiesto l'accesso ai dati. Si tratta delle autorizzazioni.
Puoi consultare informazioni approfondite sulle autorizzazioni nella relativa guida. Tuttavia, quando usi le autorizzazioni insieme alla finestra di dialogo Accedi ricorda che:
email
devono essere sottoposte all'analisi da parte di Facebook prima di renderle disponibili al pubblico generale. Scopri di più consultando la documentazione sull'analisi degli accessi e le nostre linee guida per l'analisi.Una delle best practice per l'uso di Facebook Login è non richiedere contemporaneamente le autorizzazioni di lettura e di pubblicazione. L'app può richiederne altre in seguito, quando l'utente ha già effettuato l'accesso. Sarà sufficiente avviare la finestra di dialogo Accedi per richiedere una nuova autorizzazione.
Ad esempio, immagina di avere un pulsante Accedi con le seguenti autorizzazioni:
<fb:login-button scope="public_profile" onlogin="checkLoginState();"> </fb:login-button>
Inoltre, se verifichi /me/permissions
per le autorizzazioni che l'utente ha accettato di concedere, il risultato sarà simile al seguente:
{"data": [ { "permission":"public_profile", "status":"granted" } ] }
Se desideri aggiungere l'autorizzazione email
in un secondo momento, puoi avviarla nuovamente con la funzione FB.login()
nel modo seguente:
FB.login(function(response) { console.log(response); }, {scope: 'email'});
(è necessario chiamare la funzione dal gestore degli eventi del pulsante o è probabile che intervenga il blocco pop-up del browser).
Tieni presente che la richiesta riguarda solo la nuova autorizzazione. Se accetti la nuova autorizzazione e verifichi /me/permissions
, il risultato sarà simile al seguente:
{"data": [ { "permission":"public_profile", "status":"granted" }, { "permission":"email", "status":"granted" } ] }
Tieni presente che la nuova autorizzazione email
è stata aggiunta alla lista di quelle concesse.
Facebook Login consente agli utenti di negare la condivisione di alcune autorizzazioni con la tua app. Se l'utente nega user_likes
("Mi piace") e verifica /me/permissions
per le autorizzazioni concesse, il risultato sarà simile al seguente:
{ "data": [ { "permission":"public_profile", "status":"granted" }, { "permission":"user_likes", "status":"declined" } ] }
Tieni presente che user_likes
non è stata concessa.
Puoi chiedere all'utente di concedere le autorizzazioni negate all'app una sola volta. Mostra prima una schermata in cui spieghi il motivo per cui dovrebbe concedere una determinata autorizzazione. Se, però, usi il metodo descritto nella sezione precedente, la finestra di dialogo Accedi non la richiederà.
Questo poiché, una volta che l'utente ha negato un'autorizzazione, la finestra di dialogo Accedi non la richiede a meno che non sia tu a specificarlo.
Puoi farlo aggiungendo il flag auth_type: rerequest
alla chiamata FB.login()
:
FB.login( function(response) { console.log(response); }, { scope: 'user_likes', auth_type: 'rerequest' } );
La finestra di dialogo Accedi chiederà nuovamente l'autorizzazione negata e avrà un aspetto simile a quella descritta nella sezione relativa alla richiesta di nuove autorizzazioni, ma richiederà quelle negate.