Perguntas frequentes e solução de problemas: SDK do Facebook para Android

Perguntas frequentes

Para resolver esse problema no Android 11, adicione o seguinte bloco de queries a AndroidMainfest.xml:

<manifest package="com.example.app"> <queries> <provider android:authorities="com.facebook.katana.provider.PlatformProvider" /> </queries> ... </manifest>

Você pode usar um número de identificação do aplicativo do Facebook em vários aplicativos do Android. Basta usar o mesmo número de identificação do aplicativo em outro aplicativo para login, compartilhamento, entre outros.

Para deep linking e abertura do aplicativo por meio de notificações e de outros meios, há suporte apenas a uma única combinação de nome de classe/nome de pacote.

Se você quiser suporte multiaplicativo para deep linking, consulte App Links.

Você pode substituir cadeias de caracteres no SDK do Facebook para Android, fornecendo uma tradução em seu próprio arquivo strings.xml para a localidade desejada.

O arquivo strings.xml no diretório facebook/res/values/ contém todas as cadeias de caracteres que o SDK usa. O nome dos recursos da cadeia de caracteres deve ser autoexplicativo.

Para saber mais, consulte o Guia do Desenvolvedor do Android: Como localizar com recursos.

Todo lançamento do SDK do Facebook para Android com o diálogo de compartilhamento nativo também inclui um APK para o aplicativo do Facebook.

Este APK vinha no download do SDK até o lançamento da 3.14.1. Após esse período, ele se tornou um download separado. Encontre os APKs na nossa Página de Downloads.

É só instalar o APK do Facebook no emulador ou dispositivo Android e testar o diálogo de compartilhamento nativo do aplicativo.

Normalmente, as bibliotecas do Android podem usar BuildConfig.DEBUG para determinar se o aplicativo está em modo de depuração. Entretanto, devido a um [erro no Gradle] (https://code.google.com/p/android/issues/detail?id=52962), as bibliotecas do Android são sempre criadas com DEBUG definido como falso. Como solução alternativa, há um método FacebookSdk.setIsDebugEnabled(boolean) para que você possa fazer a configuração direta do modo de depuração do aplicativo. Isso permite o log de depuração do SDK.

Você também pode definir comportamentos de log com FacebookSdk.addLoggingBehavior(LogginBehavior) para ativar o log para diferentes categorias de mensagens. Confira a Referência do SDK do Android, LoggingBehavior.

O diálogo de compartilhamento faz retornos de chamada no onSuccess e onCancel em uma ação de usuário.

  • onSuccess quando o usuário compartilha com sucesso. Além disso, haverá também um postId na classe Sharer.Result se o usuário tiver dado permissões publish_actions ao aplicativo. Se o usuário não tiver entrado com o Login no Facebook, esse método também será chamado se o usuário clicar em Cancelar.
  • onCancel se alguém clicar no botão X do diálogo de compartilhamento; ou se alguém entrar com o Login no Facebook e clicar em Cancelar.

Solução de problemas

Quando você solicita permissões de publicação, pode aparecer o erro:

  • “Sessão: houve uma tentativa de solicitar novas permissões para uma sessão que tem uma solicitação pendente” ou
  • “Tentativa de autorizar, enquanto uma solicitação está pendente”

Essa mensagem de erro significa que o aplicativo está tentando solicitar novas permissões antes da conclusão da solicitação anterior. Todas as solicitações de permissões são assíncronas, e não é possível solicitar novas permissões até que a solicitação anterior seja concluída.

Confira os nossos exemplos de aplicativos fornecidos com o SDK, como o Scrumptious ou o Hello Facebook, para ver como solicitar novas permissões em várias etapas.

Se não houver erros nos registros, provavelmente a solicitação nunca foi executada. Para executar o GraphRequest, chame o método executeAsync.

Para fazer login ou usar os diálogos de compartilhamento nativos, conte ao Facebook sobre a chave que você usa para assinar seus aplicativos.

Esse é um hash de chave que é um hash SHA-1 da chave usada para assinar seu aplicativo. Geralmente, pelo menos duas chaves diferentes serão usadas, uma para o desenvolvimento e depuração e uma para lançamento. Verifique que os valores foram adicionados na página de configurações do seu aplicativo.

Para obter mais informações, consulte Introdução ao SDK do Android - Criar um hash de chave de desenvolvimento.

A causa mais comum é a não configuração de um ContentProvider em seu AndroidManifest.xml. Não se esqueça de adicioná-lo ao seu arquivo AndroidManifest.xml com o número de identificação do aplicativo. Confira Como compartilhar no Android - Pré-requisitos.