Richiesta e revoca delle autorizzazioni

Ogni tipo di flusso di accesso dispone di un metodo diverso per richiedere le autorizzazioni, che può variare a seconda della piattaforma o del modo in cui scegli di integrare Facebook Login:

Web

App mobili

  • Per Facebook Login per Android, puoi usare diverse classi per richiedere e gestire le autorizzazioni. Per maggiori informazioni, consulta il nostro tutorial di Facebook Login per Android.
  • Per Facebook Login per iOS, puoi usare diversi metodi per richiedere le autorizzazioni. Per maggiori informazioni, consulta il nostro tutorial di Facebook Login per iOS.
  • In Windows Phone viene utilizzato il parametro scope all'avvio dell'associazione URI.

Tieni presente che puoi usare molte delle API descritte sopra per richiedere altre autorizzazioni non solo al primo accesso, ma anche in seguito.

Ottimizzazione delle richieste di autorizzazioni

Come regola generale, maggiore è il numero delle autorizzazioni richieste dall'app, minore è la probabilità che le persone usino Facebook per accedervi. Secondo le nostre ricerche, infatti, quando le app richiedono più di quattro autorizzazioni si registra un importante calo negli accessi completati.

Linee guida

Ecco alcune linee guida da utilizzare quando si richiedono le autorizzazioni, sia al primo accesso che in seguito:

  • Richiedi solo le autorizzazioni fondamentali per l'app.

  • Richiedi le autorizzazioni nel contesto in cui sono necessarie. Ad esempio, se l'app intende mostrare i luoghi di interesse nelle vicinanze dell'utente, richiedere l'autorizzazione user_location subito prima di mostrare tali informazioni consentirà di comprendere meglio il motivo della richiesta.

  • Separa le richieste delle autorizzazioni di lettura e pubblicazione. Per maggiori dettagli, consulta quanto segue.

  • Non richiedere le autorizzazioni di cui pensi avrai bisogno in futuro. Le persone potrebbero essere diffidenti e rifiutare l'app.

  • Spiega in anticipo il motivo per cui richiedi un'autorizzazione. Spiegando perché hai bisogno di accedere a determinate informazioni, aumenti le possibilità che le persone desiderino condividerle.


Autorizzazioni di pubblicazione

Le app devono inviare richieste separate per le autorizzazioni di lettura e pubblicazione. Pianifica in modo che l'app richieda all'accesso iniziale le autorizzazioni di lettura indispensabili e successivamente eventuali autorizzazioni di pubblicazione quando l'utente ne avrà realmente bisogno, ad esempio per creare una notizia Open Graph dall'app. In questo modo, puoi fornire un'esperienza utente ottimale e ottimizzare la conversione.

Se l'app richiede le autorizzazioni di lettura e di pubblicazione una dopo l'altra, potresti ricevere degli avvisi per gli sviluppatori. Per interrompere la ricezione di questi avvisi, separa le richieste oppure segui le linee guida per i casi eccezionali spiegate di seguito.

Nel raro caso in cui l'app richieda in anticipo le autorizzazioni di pubblicazione (ad esempio, se l'unica funzione dell'app consiste nel pubblicare lo stato d'animo di una persona su Facebook), all'accesso iniziale richiedi solo il numero minimo indispensabile di autorizzazioni di lettura. Quando l'utente effettua l'accesso, mostra una schermata che spieghi il motivo per cui l'app ha bisogno delle autorizzazioni di pubblicazione, offrendo la possibilità di concederle cliccando su un pulsante. In questo modo, puoi fornire maggiore contesto e migliorare la conversione.

Un caso in cui potresti dover richiedere le autorizzazioni di lettura e scrittura una di seguito all'altra è quello in cui un account basato su un indirizzo e-mail viene associato per la prima volta all'account Facebook dell'utente. Generalmente, questa situazione si verifica quando l'utente desidera condividere una storia sul diario di Facebook. Quando l'app crea la finestra di dialogo Accedi, l'utente visualizza due finestre consecutive, una per connettere l'account all'app e l'altra che richiede le autorizzazioni di pubblicazione. In questo caso, assicurati che le uniche autorizzazioni di lettura richieste siano public_profile. In questo modo, puoi fornire un'esperienza utente ottimale perché l'utente desidera pubblicare contenuti dall'app e, spesso, non intende concedere autorizzazioni di lettura aggiuntive. Migliorerai anche la conversione.

Verifica delle autorizzazioni attuali

Facebook offre alle persone il controllo completo di tutte le autorizzazioni concesse a un'app, non solo quando viene visualizzata finestra di dialogo Accedi. Infatti, durante la procedura di accesso gli utenti possono scegliere di non concedere determinate autorizzazioni. Possono anche revocarle in qualsiasi momento attraverso le impostazioni sulla privacy di Facebook. L'app deve controllare la validità delle autorizzazioni prima di tentare di effettuare una chiamata all'API per cui sono necessarie. Ad esempio, prima dell'invio di un messaggio, l'app deve controllare che l'autorizzazione email sia ancora concessa.

Per le app web è disponibile un endpoint dell'API Graph che consente di recuperare una lista delle autorizzazioni concesse:

GET /{user-id}/permissions

La chiamata deve essere effettuata con il token d'accesso di un utente o dell'app. La chiamata restituisce una stringa JSON contenente le autorizzazioni concesse all'app e il rispettivo stato:

{
  "data": [
    {
      "permission": "public_profile",
      "status": "granted"
    },
    {
      "permission": "email",
      "status": "granted"
    },
    {
      "permission": "user_friends",
      "status": "declined"
    }
  ]
}

Sono anche disponibili dei metodi negli iOS e Android SDK che forniscono rappresentazioni platform-friendly delle autorizzazioni concesse all'app.

Gestione delle autorizzazioni mancanti

Quando un'app richiede le autorizzazioni, gli utenti possono negarle, non concederle completamente o modificarle in un secondo momento. Per fornire un'esperienza ottimale, le app devono essere progettate per gestire queste situazioni.

Per prima cosa, le app devono essere in grado di gestire le autorizzazioni richieste ma che non sono state concesse:

  • Controlla le autorizzazioni concesse prima di tentare di utilizzare le API per richiederle.
  • Rileva gli errori di autorizzazione restituiti quando viene eseguita una richiesta all'API senza l'autorizzazione corretta. Ecco un esempio di errore:
{
  "error": {
    "message": "(#200) The user hasn't authorized the application
     to perform this action",
    "type": "OAuthException",
    "code": 200
  }
}

Quando un'app rileva che un utente ha negato alcune o tutte le autorizzazioni, può riavviare il flusso di accesso una volta per richiedere le autorizzazioni necessarie. Tuttavia, questo approccio determina un'esperienza negativa e, se possibile, va evitato. Se un utente sceglie attivamente di non concedere un'autorizzazione specifica è improbabile che cambi idea, pur ricevendo altre richieste. Procedi invece in questo modo:

  • Se una persona rifiuta la finestra di dialogo Accedi, spiega subito in modo chiaro perché viene richiesta ogni autorizzazione. Consenti all'utente di cliccare o toccare per tornare alla finestra di dialogo di richiesta delle autorizzazioni. Non reindirizzarlo immediatamente a una finestra di dialogo di richiesta senza una spiegazione.

  • Se un utente ha rifiutato un'autorizzazione per la tua app, la finestra di dialogo Accedi non consentirà di richiederla di nuovo a meno che non passi auth_type=rerequest insieme alla richiesta.

  • Per i casi in cui un utente ha concesso alcune autorizzazioni ma non altre, richiedi solo quelle mancanti nel momento in cui ne avrai bisogno. Ad esempio, se l'app invia messaggi di conferma degli ordini all'indirizzo e-mail dell'utente, richiedi l'autorizzazione email solo quando viene effettuato un ordine.

  • A meno che le autorizzazioni richieste nella finestra di dialogo Accedi non siano fondamentali per la funzionalità dell'app o per una funzione specifica, consenti agli utenti di continuare a usare l'app anche senza le autorizzazioni.

Se l'app reindirizza ripetutamente gli utenti che hanno negato le autorizzazioni alla relativa finestra di dialogo di richiesta, potresti ricevere degli avvisi per gli sviluppatori. Per non riceverli più, segui queste linee guida.

Revoca delle autorizzazioni

Le app possono consentire agli utenti di revocare le autorizzazioni concesse in precedenza. Ad esempio, potrebbe essere disponibile una pagina delle impostazioni in cui disabilitare l'invio di e-mail all'utente. Tale pagina potrebbe anche consentire di revocare contestualmente l'autorizzazione email.

Puoi revocare un'autorizzazione specifica effettuando una chiamata a un endpoint dell'API Graph:

DELETE /{user-id}/permissions/{permission-name}

Questa richiesta deve essere effettuata con un token d'accesso dell'utente o dell'app in questione. Se la richiesta viene eseguita correttamente, riceverai la risposta true.


Revoca dell'accesso

Puoi anche consentire agli utenti di rimuovere completamente le autorizzazioni dell'app o di revocare l'accesso effettuando una chiamata a questo endpoint dell'API Graph:

DELETE /{user-id}/permissions

Questa richiesta deve essere effettuata con un token d'accesso dell'utente valido o con un token d'accesso dell'app in questione. Se la richiesta viene eseguita correttamente, l'app riceve la risposta true. Se la chiamata viene effettuata correttamente, il token d'accesso dell'utente non è più valido e l'utente deve effettuare di nuovo l'accesso. Poiché le autorizzazioni dell'app sono state revocate, l'utente deve anche concedere l'accesso all'app come se stesse effettuando l'accesso per la prima volta.

Guide per le piattaforme

AndroidiOSWeb