O SDK do Facebook para Android permite que as pessoas entrem no app usando o Login do Facebook. Quando as pessoas entram no seu app com o Facebook, elas podem conceder permissões para que você possa recuperar informações ou executar ações em nome delas na plataforma.
Para ver um exemplo de projeto que mostra como integrar o Login do Facebook a um app Android, consulte FBLoginSample no GitHub.
Siga as etapas abaixo para adicionar o Login do Facebook ao app.
Entre no Facebook para criar aplicativos ou se registrar como um desenvolvedor.
buildscript { repositories {}}
: dependencies{}
para usar a versão mais recente do SDK do Login do Facebook: Se estiver usando a versão 5.15 ou posterior do SDK do Facebook para Android, você não precisa adicionar uma atividade ou filtro de intenção para as guias personalizadas do Chrome. Essa funcionalidade está inclusa no SDK.
Depois que você integrar o Login do Facebook, alguns eventos do app serão automaticamente registrados e coletados para o Gerenciador de Eventos, a menos que você desabilite o registro automático. Para saber mais sobre as informações coletadas e sobre como desabilitar o registro automático de eventos, consulte Registro automático de eventos do app.
FacebookActivity
ao manifesto do Android. /app/res/values/strings.xml
.string
com os nomes facebook_app_id
, fb_login_protocol_scheme
e facebook_client_token
, depois defina os valores do ID do app e do token do cliente. Por exemplo, se o ID do app for 1234
e o token do cliente for 56789
, seu código terá esta aparência: /app/manifest/AndroidManifest.xml
. meta-data
ao elemento application
para o ID do app e o token do cliente: application
: <activity android:name="com.facebook.FacebookActivity" android:configChanges= "keyboard|keyboardHidden|screenLayout|screenSize|orientation" android:label="@string/app_name" /> <activity android:name="com.facebook.CustomTabActivity" android:exported="true"> <intent-filter> <action android:name="android.intent.action.VIEW" /> <category android:name="android.intent.category.DEFAULT" /> <category android:name="android.intent.category.BROWSABLE" /> <data android:scheme="@string/fb_login_protocol_scheme" /> </intent-filter> </activity>
uses-permission
ao manifesto depois do elemento application
: uses-permission
ao manifesto depois do elemento application
: É possível definir o registro automático de eventos do app como "true" ou "false" configurando a sinalização AutoLogAppEventsEnabled
no arquivo AndroidManifest.xml
.
LoginButton
do SDK. O LoginButton
é um elemento de interface do usuário que contém as funcionalidades disponíveis no LoginManager
. Se alguém clicar no botão, o login será iniciado com as permissões definidas no LoginManager
. Para ser usado por usuários externos, o Login do Facebook exige a permissão avançada public_profile. O botão segue o estado de login e exibe o texto correto com base no estado de autenticação de quem faz o login. CallbackManager.Factory.create
. Login button
e registrar um retorno de chamada no método onCreate()
ou onCreateView()
. As propriedades para personalização são LoginBehavior
, DefaultAudience
, ToolTipPopup.Style
e as permissões no LoginButton
. Por exemplo: private static final String EMAIL = "email"; loginButton = (LoginButton) findViewById(R.id.login_button); loginButton.setReadPermissions(Arrays.asList(EMAIL)); // If you are using in a fragment, call loginButton.setFragment(this); // Callback registration loginButton.registerCallback(callbackManager, new FacebookCallback<LoginResult>() { @Override public void onSuccess(LoginResult loginResult) { // App code } @Override public void onCancel() { // App code } @Override public void onError(FacebookException exception) { // App code } });
LoginManager
ou LoginButton
. Caso você registre o retorno de chamada com LoginButton
, não será preciso registrá-lo no gerenciador de login. onCreate()
da atividade ou do fragmento: callbackManager = CallbackManager.Factory.create(); LoginManager.getInstance().registerCallback(callbackManager, new FacebookCallback<LoginResult>() { @Override public void onSuccess(LoginResult loginResult) { // App code } @Override public void onCancel() { // App code } @Override public void onError(FacebookException exception) { // App code } });
LoginResult
conterá o novo AccessToken
e as permissões concedidas ou recusadas recentemente. registerCallback
para que o login seja bem-sucedido. Você pode seguir as alterações do token de acesso atual com a classe AccessTokenTracker
descrita abaixo. onActivityResult
, chame callbackManager.onActivityResult
para passar os resultados de login ao LoginManager
via callbackManager
. Se você estiver usando atividades ou fragmentos do AndroidX, não será necessário substituir onActivityResult
.
onActivityResult
ao callbackManager
. LoginManager
define o AccessToken
e o Profile
atuais dessa pessoa. O SDK do Facebook salva os dados nas preferências compartilhadas e os define no início da sessão. Você pode ver se uma pessoa já está conectada consultando AccessToken.getCurrentAccessToken()
e Profile.getCurrentProfile()
. AccessToken.getCurrentAccessToken
com o SDK do cache ou de um favorito do aplicativo quando ele inicializar a frio. Verifique a validade no método onCreate
da sua Activity
:queries
no seu arquivo /app/manifest/AndroidManifest.xml
. O código a seguir mostra como ativar o Login Expresso. LoginManager.getInstance().retrieveLoginStatus(this, new LoginStatusCallback() { @Override public void onCompleted(AccessToken accessToken) { // User was previously logged in, can log them in directly here. // If this callback is called, a popup notification appears that says // "Logged in as <User Name>" } @Override public void onFailure() { // No access token could be retrieved for the user } @Override public void onError(Exception exception) { // An error occurred } });