Perché ottengo diversi keyhashes per la logging di app facebook?

Ho provato

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

E ho un keyhash 1knQ67Fx4PUOYXggSe+mnzqaTL8= .

  • Aggiunta di un'intestazione ad una PreferenceActivity
  • Come avviare una connessione di networking locale tramite il Wi-Fi hotspot Android?
  • Come disegnare il cerchio con partizionato in android?
  • Come faccio ad applicare un riferimento circolare in un RelativeLayout?
  • Cambia colore della barra d'azione del titolo
  • Come call un'attività Android da PhoneGap
  • Ma la documentazione di Google suggerisce anche un'alternativa .

     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) { } 

    Ma questo produce UR02fNgzyMOjpWCxUnjGZ4ctF6Y= . Ho doublemente verificato ciò e ottengo questi due valori in linea con i rispettivi approcci.

    Perché sono differenti? E quale si dovrebbe registrare a developers.facebook.com? La documentazione non è molto chiara.

    Edit:

    Come Offbeatmammal dice che posso registrare più chiavi sul sito di facebook. Quindi è ok. Ma dovrei anche specificare il keyhash nel file manifesto di applicazione. Così, inoltre, chiedendo: quale devo usare lì nell'applicazione ? Certamente posso provarlo, ma una risposta sarebbe stata anche gradita.

  • Come affermare all'interno di un RecyclerView in Espresso?
  • Spostare ImageView all'interno di RelativeLayout
  • Al momento del logout, deselect lo stack della cronologia attività, impedendo al button "indietro" di aprire le attività con solo un accesso
  • Threading in Android
  • Rendere frammenti a schermo integer programmaticamente
  • Sincronizza due ScrollView
  • 3 Solutions collect form web for “Perché ottengo diversi keyhashes per la logging di app facebook?”

    Avnetworking in sostanza bisogno di alless 2 chiavetta chiavi per la tua applicazione. Supponiamo che lavori solo su un computer. Per ulteriori computer, è necessario generare e aggiungere un'altra chiave Hash alle impostazioni dell'applicazione nella Console per gli sviluppatori.

    Spiegazione:

    Durante la verifica dell'applicazione, l'eclipse (in combinazione con l'ADT / SDK) utilizzerà sempre il debug.keystore per spingere l'applicazione sul dispositivo o sull'emulatore. Quando pubblici l'applicazione, utilizzi il keystore generato per l'applicazione (per pubblicazione su Google Play).

    Facebook richiede la chiave Hashes sia per il debug.keystore che per il proprio keystore.

    Per affrontare la tua preoccupazione per avere diversi Hashes di chiave utilizzando due methods diversi, è qualcosa che ho affrontato quando ho iniziato a utilizzare l'Android SDK di Facebook. Per aggirarlo, ho trovato una soluzione che funziona sempre e sempre è precisa. Puoi seguire i passaggi di queste risposte (sono quasi uguali) e avrai la tua chiave Hash che funziona in pochissimo tempo:

    1. https://stackoverflow.com/a/13283088/450534
    2. https://stackoverflow.com/a/13343529/450534
    3. https://stackoverflow.com/a/10516629/450534 (la soluzione è nei commenti in questo)

    Così, per riassumere:

    1. Prova a utilizzare i passaggi dai link forniti in precedenza per consentire all'SDK di Facebook di indicare la corretta chiave Hash.
    2. E per quale chiave Hash deve essere utilizzato: non dovrai decidere. Poiché avrai aggiunto entrambe le hash chiave alla tua console per gli sviluppatori, Facebook utilizzerà automaticamente l'appropriato.
    3. Non sono consapevole di aver bisogno di aggiungere la chiave Hash al file Manifest . Forse potrebbe essere un requisito della SDK v3 di Facebook. In questo caso, durante la verifica, utilizzare la chiave Hash creata con il debug.keystore e quando sei pronto a rilasciare l'applicazione, passare alla chiave Hash creata utilizzando la tua libreria di rilascio .

    Spero che questo risolva la tua domanda.

    EDIT

    Come Offbeatmammal come già indicato, è ansible aggiungere più Hashes Key alla tua console per gli sviluppatori. Così la memorizzazione e l'utilizzo di più Hashes Key è qualcosa che non dovrai preoccuparti.

    Ho sempre usato la firma del keytool. la cosa buona è che la forma di Facebook in cui registri le firme support più (cosa utile se sovrapponga più applicazioni, o hai bisogno di supportre più appstore e finisce con diversi hash)

    Ho avuto lo stesso problema. ma finalmente ho avuto la stessa hash chiave specificando la password del negozio

    keytool -exportcert -alias androiddebugkey -keystore keystore/debug.keystore -storepass yourstorepass | openssl sha1 -binary | openssl base64

    L'Android è un fan Android di Google, tutto su telefoni Android, Android Wear, Android Dev e applicazioni Android Games e così via.