web-dev-qa-db-fra.com

Générer une clé de hachage pour une application utilisant Facebook sdk

J'utilise facebook sdk pour me connecter à mon application . L'application fonctionne correctement sur les appareils HTC . L'application fonctionne également correctement sur les appareils Samsung si aucune application facebook n'est pré-installée.

Mais s'il y a déjà une application facebook sur le mobile et que l'utilisateur installe mon application, l'utilisateur n'est jamais connecté… .. D'après ce que je sais, je pense que cela pourrait être un problème d'authentification unique liées à la génération de la clé de hachage de l'application appropriée et à l'utilisation de la clé de hachage dans l'application Facebook que j'avais l'habitude de connecter à l'application mobile.

Merci de me guider pour créer la clé de hachage. Je cours Ubuntu 10.4.

Quand j'exécute cette commande dans le terminal: -

keytool -exportcert -alias <your keystore alias name>.keystore -keystore ~/.Android/<your keystore name>.keystore | openssl sha1 -binary | openssl base64

Je ne suis jamais invité à entrer un mot de passe, bien que la clé de hachage me soit fournie.

31
abhishek

Essaye ça:

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

J'espère que vous l'obtiendrez. Je viens de le vérifier et j'ai reçu l'invite pour le mot de passe.

61
Lavanya

Vous pouvez utiliser ce bloc de code pour générer une clé de hachage. Placez ce bloc de code dans votre méthode onCreate ().

try {
        PackageInfo info = getPackageManager().getPackageInfo(
                "Your package name", 
                PackageManager.GET_SIGNATURES);
        for (Signature signature : info.signatures) {
            MessageDigest md = MessageDigest.getInstance("SHA");
            md.update(signature.toByteArray());
            Log.d("Your Tag", Base64.encodeToString(md.digest(), Base64.DEFAULT));
            }
    } catch (NameNotFoundException e) {

    } catch (NoSuchAlgorithmException e) {

    }
46
ACengiz

Il suffit de donner la commande en tant que:

keytool -exportcert -alias androiddebugkey -keystore debug.keystore

et donnez le mot de passe de frappe, Android ou entrez

Ici, vous devez aller dans la structure de répertoires jusqu'à ".Android" puis lancer cette commande. En général, le chemin est C:\Users\User-name\.Android>.

3
rishi

S'il ne vous demande pas de mot de passe, ouvrez d'abord votre terminal et tapez:

Sudo apt install openjdk-8-jre-headless

Et puis suivez le chemin habituel, tapez simplement:

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

Pour le mot de passe, entrez: AndroidVous avez tous terminé.

Cette réponse est uniquement destinée au débogage. Pour la publication, utilisez votre fichier .jks pour générer la clé de hachage.

2
Rishabh Chandel

Vérifiez trois parties dans votre environnement.

  1. où est "debug.keystore" ?

    trouver / -name "debug.keystore" 

    si vous ne le trouvez pas, vérifiez votre Eclipse ou ADT.

  2. quel est nom d'alias

    keytool -list -v -keystore "PATH_TO_DEBUG_KEYSTORE"

  3. Vérifiez si installé openssl  

    openssl

Si tout est prêt, il devrait demander le mot de passe

2
Kislingk
C:\openssl\bin>keytool -exportcert -alias aliasName -keystore "C:\Users\s\.Android\debu
g.keystore" | "C:\openssl\bin\openssl" sha1 -binary | "C:\openssl\bin\openssl" b
ase64
Enter keystore password:  Android
GEYtOJobR4NzuxX4iOl/yR6sla4=
0
vikash sain