Durante o login básico, o seu app recebe acesso ao perfil público e ao email da pessoa. Para você acessar informações adicionais do perfil ou publicar conteúdo no Facebook em nome de uma pessoa, é preciso solicitar as permissões necessárias:
Campos de perfil público padrão: fornece acesso às informações básicas do perfil.
Permissões de leitura: todas as outras informações que uma pessoa adiciona ao próprio perfil do Facebook são protegidas por outras permissões de leitura.
Permissões de gravação: para publicar conteúdo em nome de uma pessoa, os apps precisam de uma permissão de publicação separada.
Veja as maneiras de gerenciar permissões no seu app:
Quando o seu app envia solicitações do Facebook, ele precisa verificar as permissões necessárias e solicitá-las, se necessário.
É preciso que o app gerencie erros de permissões ausentes no Facebook solicitando permissões e fazendo novas tentativas.
As pessoas que usam o app podem revogar permissões no Facebook, mas você também pode implementar esse recurso no app.
Para permitir que as pessoas removam privilégios básicos de login do app, basta implementar um mecanismo para revogar o login completamente.
Para saber mais sobre as diferentes permissões disponíveis, consulte o Guia de permissões.
As pessoas são cautelosas quanto às permissões de publicação. Por isso, solicite essas permissões somente quando a pessoa estiver pronta para publicar algo do seu app, e não no login inicial.
Durante o login básico, seu app recebe acesso ao perfil público e ao email de uma pessoa. Para acessar mais informações de perfil ou publicar conteúdo no Facebook em nome de alguém, você precisa solicitar as permissões necessárias.
Aqui obtemos o user_status
. É possível passar essas permissões para o botão LoginButton
ou uma interface do usuário personalizada de login e permissões.
Na classe MainFragment
, modifique o código em onCreateView()
:
... LoginButton authButton = (LoginButton)view.findViewById(R.id.authButton); authButton.setFragment(this); authButton.setReadPermissions(Arrays.asList("user_status")); return view; ...
LoginManager
é uma instância singleton e funciona com o currentAccessToken do AccessToken. Depois de um login bem-sucedido, o currentAccessToken será definido. Para você solicitar permissões adicionais, faça uma chamada para os métodos logInWithPermissionName
.
Os métodos logInWithPermissionName
sempre abrem uma interface do usuário e, se necessário, solicitam permissões adicionais. Para você solicitar permissões adicionais a uma pessoa, faça a seguinte solicitação por meio do SDK do Facebook para Android:
LoginManager.getInstance().logInWithReadPermissions( fragmentOrActivity, Arrays.asList("email"));
Use esse recurso para solicitar permissões além daquelas que o app já recebeu. É possível usar esse recurso depois do login inicial.
Você pode solicitar diversas das permissões de leitura listadas na referência de permissões.
Você pode solicitar quantas permissões de leitura ou de publicação desejar durante o login. A solicitação de mais de quatro permissões leva a um declínio significativo no número de logins concluídos.
A permissão pubish_actions
foi removida em 24 de abril de 2018. Para ver mais informações, consulte Alterações fora de ciclo. Para você oferecer aos usuários do app um modo de compartilhar conteúdo no Facebook, use nossos produtos de compartilhamento.
A solicitação de permissões de publicação com publish_actions
durante o login cria uma segunda etapa na interface do usuário de login. Sendo assim, você deve solicitar o mínimo de permissões de leitura durante o login, depois solicitar permissões adicionais ou de publicação quando alguém realmente precisar delas. Caso você queira otimizar as solicitações de permissão, consulte como otimizar permissões.
Para solicitar permissões de publicação no seu app, você pode usar o LoginManager
.
LoginManager.getInstance().logInWithPublishPermissions( fragmentOrActivity, Arrays.asList("publish_actions"));
Assim, é possível solicitar permissões além das que o app já recebeu durante o login.
As pessoas podem conceder apenas um subconjunto das permissões solicitadas (com exceção de public profile
, que é concedida no login).
Caso você queira obter a lista de permissões associadas ao token de acesso atual, faça uma chamada para:
AccessToken.getCurrentAccessToken().getPermissions();
Para obter a lista de permissões recusadas, faça uma chamada para:
AccessToken.getCurrentAccessToken().getDeclinedPermissions();
O app deve gerenciar o caso de uma pessoa se recusar a conceder uma das permissões solicitadas. Caso o app precise de uma das permissões recusadas para funcionar, você poderá solicitá-la de novo por meio do LoginManager
, como nos exemplos acima.
Quando você implementa o Login no Facebook, seu app pode opcionalmente solicitar permissões para um subconjunto dos dados de quem está fazendo o login.
Se o app solicitar mais que os campos de perfil público e email, ele precisará ser analisado pelo Facebook antes do lançamento. Saiba mais sobre o processo de análise e o que é necessário para passar na análise.
Guia de Análise de Login