Introdução ao SDK do Android

O SDK do Facebook para Android é a maneira mais fácil de integrar seu aplicativo Android ao Facebook. Ele permite:

Você tem duas maneiras de configurar seu aplicativo para usar o SDK do Facebook:

  • Usando o Início Rápido.
  • Configurando seu projeto com o SDK do Facebook.

Início Rápido

Para obter um número de identificação do aplicativo do Facebook, definir as configurações do aplicativo e importar o SDK do Facebook, clique no botão abaixo e siga as instruções online.

Início rápido do Android

 

Guias relacionados:

Configuração do Android Studio

Para usar o SDK do Facebook em um projeto, adicione-o como uma dependência de compilação e importe-o.

1. Vá para Android Studio | Novo Projeto | SDK Mínimo

2. Selecione API 15: Android 4.0.3 ou posterior e crie um novo projeto.

3. Depois de criar o projeto, abra your_app | build.gradle

4. Adicione o seguinte à seção buildscript { repositories {}} do arquivo build.gradle (Project):

mavenCentral() 

5. Adicione o seguinte à seção dependencies {} do arquivo build.gradle (module: app) para compilar a última versão do SDK do Facebook:

Este objeto deve ser excluído. Entre em contato com a Arsenio Locsin para saber mais.

Quando você usa o SDK do Facebook, os eventos no aplicativo são registrados e coletados automaticamente para o Facebook Analytics, a menos que desabilite o log de eventos automático. Para saber mais sobre as informações que são coletadas e sobre como desabilitar o log de eventos automático, confira o tópico Log de eventos automático do aplicativo.

6. Crie seu projeto. Agora, é possível importar o com.facebook.FacebookSdk no aplicativo.

Adicione um número de identificação do aplicativo do Facebook

Então, adicione o número de identificação do aplicativo do Facebook ao arquivo de cadeias de caracteres do projeto e atualize o manifesto do Android:

1. Abra o arquivo do strings.xml. Exemplo de caminho: /app/src/main/res/values/strings.xml.

2. Adicione uma nova cadeia de caracteres com o nome facebook_app_id e valor como seu número de identificação do aplicativo do Facebook

3. Abra AndroidManifest.xml

4. Adicione um elemento de uses-permission ao manifesto:

<uses-permission android:name="android.permission.INTERNET"/>

5. Adicione um elemento de meta-data ao elemento application:

<application android:label="@string/app_name" ...>
    ...
    <meta-data android:name="com.facebook.sdk.ApplicationId" android:value="@string/facebook_app_id"/>
    ...
</application>

Como enviar imagens ou vídeos

Se estiver compartilhando links, imagens ou vídeos por meio do aplicativo do Facebook para Android, você também precisará declarar FacebookContentProvider no manifesto.

Inclua o número de identificação do aplicativo no final do valor authorities. Por exemplo, se o número de identificação do aplicativo do Facebook for 1234, a declaração terá a seguinte aparência:

<provider android:authorities="com.facebook.app.FacebookContentProvider1234"
          android:name="com.facebook.FacebookContentProvider"
          android:exported="true" />

Como usar o SDK com o ProGuard

Você não precisa executar nenhuma etapa adicional para usar o ProGuard para o SDK do Facebook para Android. Para obter instruções sobre o Proguard, consulte Site do Desenvolvedor do Android, Reduzir seu código e Recursos.

Como executar exemplos de aplicativos

Os exemplos a seguir vêm com o SDK:

  • HelloFacebookSample: mostra o acesso ao perfil, as atualizações de status e o upload de fotos
  • RPSSample: use o diálogo de compartilhamento nativo, a publicação do Open Graph, os seletores, os convites e o deep linking.
  • Scrumptious: login, solicitações, seletores, uploads de imagens e publicação do Open Graph.

Importando o SDK em um projeto do Android Studio, você pode fazer testes com exemplos.

Os exemplos dependem do projeto, em vez de dependerem do repositório central via maven central ou jcenter. Isso acontece para que, quando uma cópia local do SDK for atualizada, os exemplos reflitam as alterações.

Para executar exemplos de aplicativos rapidamente, você pode gerar hashes de chave para seus ambientes de desenvolvimento. Adicione-os ao perfil de desenvolvedor do Facebook para os exemplos de aplicativos. A Keytool, para gerar os hashes de chave, está inclusa no Java SE Development Kit (JDK) que você instalou como parte da configuração do seu ambiente de desenvolvimento. O OpenSSL está disponível para download do OpenSSL.

No OS X, execute:

keytool -exportcert -alias androiddebugkey -keystore ~/.android/debug.keystore | openssl sha1 -binary | openssl base64

No Windows, execute:

keytool -exportcert -alias androiddebugkey -keystore %HOMEPATH%\.android\debug.keystore | openssl sha1 -binary | openssl
base64

Isso gera uma cadeia de 28 caracteres.

Vá para o site de desenvolvedor do Facebook. Faça login no Facebook e, usando o menu suspenso na parte superior direita, vá para Configurações do Desenvolvedor:

Nas configurações de desenvolvedor, selecione Exemplo de aplicativo no menu e adicione e salve o hash da chave no perfil:

É possível adicionar vários hashes de chave se você estiver desenvolvendo com vários computadores.

Agora é possível compilar e executar todos os exemplos - incluindo aqueles que usam o Login no Facebook.

Crie um hash de chave de desenvolvimento

O Facebook usa o hash da chave para autenticar as interações entre o aplicativo e o aplicativo do Facebook. Se você executar aplicativos que usam o Login no Facebook, será preciso adicionar o hash da chave de desenvolvimento do Android ao perfil do desenvolvedor do Facebook.

Para a versão do aplicativo que você lançar, também será preciso gerar e definir um hash de chave de lançamento.

Tanto no OS X quanto no Windows, você pode obter um hash de chave gerando ou utilizando o valor retornado por Settings.getApplicationSignature(Context). Para obter instruções, confira Como executar exemplos de aplicativos.


Próximas etapas

Depois de instalar o SDK do Facebook para Android e configurar um número de identificação do aplicativo do Facebook, você verá:


Como configurar um hash de chave de lançamento

Para autenticar a troca de informações entre o aplicativo e o Facebook, você precisa gerar um hash de chave de lançamento e adicioná-lo às configurações do Android no número de identificação do aplicativo do Facebook. Sem isso, a sua integração com o Facebook poderá não funcionar corretamente quando você lançar o aplicativo na loja.

Em uma etapa anterior, você deve ter atualizado as suas Configurações de desenvolvedor do Facebook com os hashes de chave para os ambientes de desenvolvimento.

Ao publicar o aplicativo, ele normalmente é assinado com uma assinatura diferente ao seu ambiente de desenvolvimento. Portanto, convém criar um hash de chave de lançamento e adicioná-lo às configurações do Android para o número de identificação do aplicativo do Facebook.

Para gerar um hash da chave de lançamento, execute o seguinte comando no Mac ou Windows substituindo o alias de chave de lançamento e o caminho para o keystore. No OS X, execute:

keytool -exportcert -alias <RELEASE_KEY_ALIAS> -keystore <RELEASE_KEY_PATH> | openssl sha1 -binary | openssl base64

No Windows, use:

keytool -exportcert -alias <RELEASE_KEY_ALIAS> -keystore <RELEASE_KEY_PATH> | openssl sha1 -binary | openssl base64

Use a senha que você definiu quando criou pela primeira vez a chave de lançamento.

Este comando deve gerar uma cadeia de 28 caracteres. Copie e cole esse hash de chave de lançamento nas configurações do Android do número de identificação do aplicativo do Facebook.

Você também deve verificar se a definição do Android do número de identificação do aplicativo do Facebook também contém o nome do pacote correto e a classe principal de atividade para o pacote do Android.


Como usar o SDK do Facebook com o Maven

Você pode declarar a dependência do Maven com a última versão disponível do SDK do Android:

<dependency>
  <groupId>com.facebook.android</groupId>
  <artifactId>facebook-android-sdk</artifactId>
  <version>PUT_LATEST_VERSION_HERE</version>
</dependency> 

Como solucionar problemas com exemplos de aplicativos

Se você tiver problema para executar um exemplo de aplicativo, ele pode estar relacionado ao hash da chave. Pode surgir um dos seguintes cenários:

  • Uma caixa de diálogo Login nativa aparece, mas depois de aceitar as permissões, você ainda estará no estado de desconectado. O logcat também contém uma exceção:
12-20 10:23:24.507: W/fb4a:fb:OrcaServiceQueue(504):
com.facebook.orca.protocol.base.ApiException: remote_app_id does not match stored id
  • Uma caixa de diálogo Login não nativa é exibida com a mensagem de erro: "O aplicativo foi configurado incorretamente para Login no Facebook...".

Verifique o hash da chave e se você está usando o hash de chave correto. I

Você também pode modificar manualmente o código de exemplo para usar o hash da chave correto. Por exemplo, na classe HelloFacebookSampleActivity, faça uma alteração temporária em onCreate():

@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    
    // Add code to print out the key hash
    try {
        PackageInfo info = getPackageManager().getPackageInfo(
                "com.facebook.samples.hellofacebook", 
                PackageManager.GET_SIGNATURES);
        for (Signature signature : info.signatures) {
            MessageDigest md = MessageDigest.getInstance("SHA");
            md.update(signature.toByteArray());
            Log.d("KeyHash:", Base64.encodeToString(md.digest(), Base64.DEFAULT));
            }
    } catch (NameNotFoundException e) {
        
    } catch (NoSuchAlgorithmException e) {
        
    }
    
    ...

Salve as alterações e execute novamente o exemplo. Verifique se há, na saída de logcat, uma mensagem semelhante a esta:

12-20 10:47:37.747: D/KeyHash:(936): 478uEnKQV+fMQT8Dy4AKvHkYibo=

Salve o hash de chave no perfil de desenvolvedor. Execute novamente os exemplos e verifique se você consegue fazer login.