integrazione android facebook valido hash chiave

? Pragna @ | Original: StackOverFlow
---

ciao a tutti in una delle mie app ho bisogno di ottenere i dati di fb ... sto facendo che ..

Ho creato ID app si log in con successo, ma dopo il log out accedo allora mi dà !  http://i.stack.imgur.com/58q3v.png

Ciò che è sbagliato che sto facendo ? Si prega di suggerire Sto usando Facebook sdk ... ho installato Facebook in mio telefono ... questo correre bene in emulatore che non ha installato insito applicazione Facebook

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 Risposta

1Joao Ventura @

Secondo https://developers.facebook.com/docs/android/login-with-facebook/v2.0, è necessario fornire il valore chiave Hash . Per ottenerlo, è necessario il https://developers.facebook.com/docs/android/getting-started utilizzato per firmare l'applicazione .

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

La chiave di generare hash è sbagliato . Si può avere una chiave hash utilizzando due passi . Uno è attraverso prompt dei comandi . Un altro è attraverso la codifica . Tasto cancelletto tramite prompt dei comandi di lavoro sul solo la prima volta . Non so il motivo . Ho anche avuto lo stesso problema . Così ho provato attraverso programatically .

Seguire questa procedura :

Incollare il codice seguente in 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) {

    }

Modifica " com.example.packagename " con il vostro nome del pacchetto nella codifica sopra senza Fail ( Si può trovare il nome del pacchetto nel file di Android Manifest ) .

Eseguire l'applicazione . Vai alla attività in cui si è incollato il codice di cui sopra . Nella ricerca logcat per " KeyHash " . Si può trovare una chiave di hash . Copiare l'hash chiave ed andare alla pagina Facebook dashboard applicazione . Vai a impostazioni e inserire i dettagli come nell'immagine qui sotto .

integrazione android facebook valido hash chiave

Una volta terminato il passaggio precedente . Rilanciare l'applicazione di nuovo si può ora accedere al facebook . Per maggiori dettagli su controllo hash tasto http://stackoverflow.com/a/12306418/3049065

Se si aggiunge un informazioni errate nelle impostazioni pagina significa che darà qualche errore . in modo da utilizzare le informazioni corrette lì . E anche se pubblica ( di te) necessario utilizzare l'applicazione significa che è necessario attivare l'autorizzazione (change "yes" in the "Status & Review" next to setting) .

3pavel_coder @

passato il codice folling nel vostro metodo 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();
}

basta modificare il pacchetto name.Then si va al vostro gatto Log e selezionare ricerca Debug qui poi si trova il tasto cancelletto allora coppy il tasto cancelletto e poi andare al sito developer.facebook.app_id quindi modificare la chiave hash quindi premuto salvato . Eseguire il progetto android di nuovo penso che sarà risolto .