Em Solicitando permissões estendidas , expliquei como solicitar permissões estendidas com o Facebook Android SDK. Se você usar este método para solicitar diferentes tipos de permissões em diferentes estágios, você notará que fazer uma chamada para session.reauthorizeForPublish()
com novas permissões limpa as permissões já existentes do objeto de sessão e, portanto, a chamada session.getPermissions()
retornaria posteriormente apenas as novas permissões concedidas recentemente . Isso significa que a noção do objeto de Sessão sobre suas permissões está fora de sincronia com o serviço do Facebook e o token de acesso associado à Sessão ainda tem essas permissões e ainda pode ser usado para fazer chamadas de API do Graph exigindo qualquer uma das permissões concedidas anteriormente (a menos que o usuário tenha posteriormente revogado qualquer um deles, é claro). Isto é umbug com o Facebook Android SDK .
Em este post , eu descrevo como contornar isso, persistindo permissões na classe Application.
android / application / extended permissions / facebook / java / permissions / persist / reauthorize / reauthorizerequest / session.getpermissions