integração facebook android hash da chave inválido

? Pragna @ | Original: StackOverFlow
---

Olá a todos em um dos meu aplicativo eu preciso para obter dados de fb ... eu estou fazendo isso ..

Eu criei app ID ele faça o login com sucesso, mas depois de log out i Log-In, em seguida, dá-me !  http://i.stack.imgur.com/58q3v.png

O que está errado eu estou fazendo ? Por favor, sugerem que estou usando Facebook SDK ... eu tenho instalado Facebook no meu telefone ... esta funcionando bem no emulador que não tem aplicação inbuilt Facebook instalado

this is my code

 if (FB_APP_ID == null) {
            Builder alertBuilder = new Builder(this);
            alertBuilder.setTitle("Warning");
            alertBuilder.setMessage("A Facebook Applicaton ID must be " +
                    "specified before running this example: see App.java");
            alertBuilder.create().show();
        }

        // Initialize the dispatcher
        Dispatcher dispatcher = new Dispatcher(this);
        dispatcher.addHandler("login", LoginHandler.class);
        dispatcher.addHandler("stream", StreamHandler.class);
        dispatcher.addHandler("logout", LogoutHandler.class);

        // If a session already exists, render the stream page
        // immediately. Otherwise, render the login page.
        Session session = Session.restore(this);
        if (session != null) {
            dispatcher.runHandler("stream");
        } else {
            dispatcher.runHandler("login");
        }
---

Top 5 Responder

1Joao Ventura @

Segundo https://developers.facebook.com/docs/android/login-with-facebook/v2.0, você deve fornecer o valor Key Hash. A fim de obtê-lo, você vai precisar do https://developers.facebook.com/docs/android/getting-started usado para assinar a sua aplicação.

keytool 
    -exportcert 
    -alias YourKeyAlias 
    -storepass YourStoreKeyPassword 
    -keystore PathToYourKeyStoreFile | openssl sha1 -binary | openssl base64
2Mahendran @

A chave gerar hash é errado. Você pode obter a chave de hash usando dois passos . Uma é através do prompt de comando. Outra é através de codificação. Chave Hash através do prompt de comando trabalhando em apenas primeira vez. Eu não sei o motivo. Eu também tenho o mesmo problema. Então, eu tentei -lo através de programação.

Siga esses passos :

Cole o seguinte código no oncreate() .

try {
        PackageInfo info = getPackageManager().getPackageInfo(
                "com.example.packagename", 
                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) {

    }

Modificar " com.example.packagename " com o seu nome de pacote na codificação acima sem falha (Você pode encontrar o seu nome do pacote no arquivo Android Manifest ) .

Execute o aplicativo . Vá para a atividade em que você colou o código acima. Na busca logcat para " KeyHash " . Você pode encontrar uma hash da chave . Copie o hash da chave e ir para a página do Facebook dashboard aplicação. Vá para as configurações e digite os detalhes como na imagem abaixo .

integração facebook android hash da chave inválido

Depois de terminado o passo acima . Relançar o app novamente, agora você pode logar no facebook . Para mais detalhes sobre verificação de chave hash http://stackoverflow.com/a/12306418/3049065

Se você adicionar uma informação errada nas configurações de página significa que ele vai dar algum erro. portanto, use as informações corretas lá. E também se público ( além de você ) precisa usar sua aplicação significa que você precisa habilitar a permissão (change "yes" in the "Status & Review" next to setting) .

3pavel_coder @

passado o código folling em seu evento OnCreate

try {
    PackageInfo info = getPackageManager().getPackageInfo(
            "com.example.packagename", 
            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) {
  e.printStackTrace();

} catch (NoSuchAlgorithmException e) {
    e.printStackTrace();
}

apenas modificar o pacote name.Then você vai para o seu gato Log e selecione pesquisa Debug aqui, então você vai encontrar a chave de hash, então você coppy a chave de hash e, em seguida, ir para o site developer.facebook.app_id em seguida, editar a sua chave de hash em seguida, pressionou salvo. executar seu projeto android novamente eu acho que vai resolver.