Gestione delle autorizzazioni su Android

Durante l'accesso di base la tua app può consultare i profili pubblici e le e-mail. Tuttavia, per ottenere informazioni del profilo aggiuntive o pubblicare contenuti su Facebook per conto dell'utente, è necessario richiedere determinate autorizzazioni:

  • Campi Profilo pubblico predefiniti: consentono di accedere a informazioni del profilo di base.

  • Autorizzazioni di lettura: garantiscono la sicurezza delle informazioni aggiunte al profilo Facebook.

  • Autorizzazioni di scrittura: le app hanno bisogno di specifiche autorizzazioni per pubblicare contenuti per conto dell'utente.

Di seguito vengono descritte le modalità di gestione delle autorizzazioni nella tua app:

  • Quando la tua app invia richieste Facebook per qualcuno, dovrebbe controllare di avere le autorizzazioni necessarie e, in caso contrario, richiederle.

  • La tua app deve gestire i messaggi di errore di Facebook in caso di autorizzazioni mancanti, richiedendole ed effettuando altri tentativi.

  • Gli utenti che usano la tua app possono revocare le autorizzazioni su Facebook, opzione che puoi implementare anche nella tua app.

  • Inoltre, puoi permettere di rimuovere i privilegi di accesso dalla tua app implementando un meccanismo che revochi completamente l'accesso.

Scopri di più sulle autorizzazioni disponibili consultando la guida alle autorizzazioni.

Concedere le autorizzazioni di pubblicazione è un'operazione a cui molti utenti sono sensibili, richiedile solo quando saranno pronti a pubblicare contenuti tramite la tua app e non durante l'accesso iniziale.

Autorizzazioni aggiuntive

Durante l'accesso di base la tua app può consultare i profili pubblici e le e-mail. Tuttavia, per ottenere informazioni aggiuntive o pubblicare contenuti su Facebook per conto dell'utente, è necessario richiedere determinate autorizzazioni.

Qui otterremo user_status. Puoi passare le autorizzazioni al pulsante LoginButton o a un'interfaccia utente personalizzata per l'accesso e le autorizzazioni.

Modifica il codice di onCreateView() nella classe MainFragment:

...
LoginButton authButton = (LoginButton)view.findViewById(R.id.authButton);
authButton.setFragment(this);
authButton.setReadPermissions(Arrays.asList("user_status"));

return view;
...

Autorizzazioni di lettura

LoginManager è un'istanza di singleton e usa il currentAccessToken di AccessToken. Quando l'accesso viene effettuato correttamente, verrà configurato il currentAccessToken. Per richiedere autorizzazioni aggiuntive, è sufficiente chiamare i metodi logInWithPermissionName.

I metodi logInWithPermissionName aprono un'interfaccia utente e, se necessario, richiedono autorizzazioni aggiuntive. Per ottenerle, effettua questa richiesta con l'SDK di Facebook per Android:

LoginManager.getInstance().logInWithReadPermissions(
    fragmentOrActivity,
    Arrays.asList("email"));

Usa questo metodo per richiedere altre autorizzazioni, oltre a quelle già concesse, dopo l'accesso iniziale.

Puoi richiedere molte delle autorizzazioni di lettura presenti in Riferimento per le autorizzazioni.

Autorizzazioni di pubblicazione

Durante l'accesso puoi richiedere le autorizzazioni di lettura o di pubblicazione che desideri, ma quando sono più di quattro si registra un importante calo negli accessi completati.

A partire dal 24 aprile 2018, l'autorizzazione pubish_actions è stata rimossa. Per maggiori informazioni, consulta il registro modifiche sostanziali. Per offrire agli utenti della tua app la possibilità di condividere contenuti su Facebook, ti invitiamo a usare i nostri prodotti per la condivisione.

Richiedendo le autorizzazioni di pubblicazione con publish_actions durante l'accesso viene creata un'ulteriore fase nell'interfaccia utente, perciò è consigliabile richiedere solo le autorizzazioni di lettura necessarie, lasciando le altre per quando ce ne sarà bisogno. Per ottimizzare la richiesta delle autorizzazioni, consulta Ottimizzazione delle autorizzazioni.

Usa LoginManager per richiedere le autorizzazioni di pubblicazione nella tua app.

LoginManager.getInstance().logInWithPublishPermissions(
    fragmentOrActivity,
    Arrays.asList("publish_actions"));

In questo modo verranno richieste altre autorizzazioni, oltre a quelle ricevute durante l'accesso.

Successiva richiesta delle autorizzazioni

È possibile concedere solo una serie di autorizzazioni, a eccezione di public profile, concessa all'accesso.

Per ottenere la lista della autorizzazioni associate al token d'accesso corrente, chiama:

AccessToken.getCurrentAccessToken().getPermissions();

Per ottenere la lista delle autorizzazioni negate, chiama:

AccessToken.getCurrentAccessToken().getDeclinedPermissions();

L'app deve essere in grado di gestire le situazioni in cui un'autorizzazione richiesta è stata negata. Se questa è necessaria per il funzionamento dell'app, puoi richiederla nuovamente usando LoginManager come negli esempi riportati in precedenza.

Analisi degli accessi

Nell'implementazione di Facebook Login, l'app può richiedere all'utente l'autorizzazione per accedere a una serie di dati.

Se, oltre ai campi del profilo pubblico predefiniti, la tua app richiede altre autorizzazioni, dovrà essere analizzata da Facebook prima del rilascio. Scopri di più sulla procedura di analisi e sui requisiti necessari per superarla.

Guida all'analisi degli accessi