android Facebook Integration ungültiger Schlüssel Hash-

? Pragna @ | Original: StackOverFlow
---

hallo alle in einem meiner app ich brauche, um Daten von fb bekommen ... ich tue, dass ..

Ich geschaffen habe, App-ID es Dich an, erfolgreich, aber nach Ausloggen i Anmelden dann es gibt mir !  http://i.stack.imgur.com/58q3v.png

Was läuft falsch ich tue ? Bitte machen Ich bin mit Facebook sdk ... Ich habe Facebook in meinem Handy installiert ... das läuft gut in Emulator, der nicht über integrierte Facebook -Anwendung installiert

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 Antwort

1Joao Ventura @

Nach https://developers.facebook.com/docs/android/login-with-facebook/v2.0, müssen Sie bieten die Key Hash-Wert . Um es zu erhalten, müssen Sie die https://developers.facebook.com/docs/android/getting-started verwendet werden, um Ihre Anwendung zu unterzeichnen.

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

Der Hash-Schlüssel zu generieren, ist falsch. Möglicherweise erhalten Sie die Raute-Taste mit zwei Schritten. Zum einen über die Eingabeaufforderung. Ein weiterer ist, durch Kodierung . Raute-Taste durch Eingabeaufforderung arbeiten nur erste Mal . Ich weiß nicht, der Grund . Ich habe auch das gleiche Problem. Also habe ich versucht, es durch programmatisch .

Befolgen Sie diese Schritte :

Fügen Sie folgenden Code 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) {

    }

Ändern " com.example.packagename " mit Ihrem Paketnamen in der obigen Codierung ohne fehler ( Sie können Ihre Paketnamen in Android Manifest -Datei ) .

Führen Sie Ihre Anwendung . Gehen Sie auf die Aktivität, in dem Sie den oben stehenden Code eingefügt. Im Logcat Suche " KeyHash " . Sie fand einen Schlüssel -Hash. Kopieren Sie die Schlüssel -Hash und gehen Sie zu Facebook-Anwendung Dashboard-Seite . Zum Einstellungen und geben Sie die Details wie in der unten Bild .

android Facebook Integration ungültiger Schlüssel Hash-

Sobald Sie den obigen Schritt abgeschlossen . Starten Sie die App wieder können Sie nun in die Facebook anmelden. Für weitere Informationen über Schlüssel Hash Prüfung der http://stackoverflow.com/a/12306418/3049065

Wenn Sie eine falsche Daten in den Einstellungen hinzufügen Seite bedeutet, dass es einige Fehler geben . dann verwenden Sie die richtigen Informationen gibt . Und auch wenn die öffentlichen (außer Sie ) müssen Ihre Anwendung bedeutet, dass Sie die Berechtigung (change "yes" in the "Status & Review" next to setting) zu ermöglichen.

3pavel_coder @

vorbei an der Folling Code in Ihre OnCreate Methode

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();
}

nur das Paket zu ändern name.Then Sie gehen, um Ihre Log Katze und wählen Sie Debug Suche hier dann werden Sie die Raute-Taste gefunden, dann können Sie die Raute-Taste und dann, um coppy developer.facebook.app_id Website gehen dann bearbeiten: Raute-Taste gedrückt, dann gespeichert. Führen Sie Ihr Android- Projekt wieder ich denke, es wird gelöst.