Facebook Android Générer Hash Key
-
24-10-2019 - |
Question
Essayer de créer une application Android avec l'intégration de Facebook, je l'ai appris à la partie dans la documentation où vous devez générer un fichier de hachage de clé, il précise pour exécuter le code suivant
keytool -exportcert -alias androiddebugkey -keystore ~/.android/debug.keystore
| openssl sha1 -binary
| openssl base64
Quand je lance cela dans mon terminal je reçois une erreur pour Keystore falsifié ou mot de passe incorrect,
Je veux juste générer mon Dièse
point Quelqu'un peut-moi dans la bonne direction?
La solution
Supprimer votre certificat de débogage sous ~ / .android / debug.keystore (sous Linux et Mac OS X); le répertoire est quelque chose comme% USERHOME% /. Android sur Windows.
Le plugin Eclipse devrait alors générer un nouveau certificat lorsque vous essayez ensuite de construire un package de débogage.
Faites-moi savoir si cela fonctionne.
Autres conseils
Pour générer la clé de hachage, vous devez suivre quelques étapes faciles.
2) Faire un openssl dossier C entraînement
3) Extrait Zip fichiers dans ce OpenSSL dossier créé C Drive.
4) Copiez le fichier debug.keystore .android dossier dans mon cas (C: \ Users \ SYSTEM.android) et collez-le dans le dossier bin dans JDK mon cas (C: \ Program Files \ Java \ jdk1.6.0_05 \ bin)
5) Ouvrir invite et donner le chemin du dossier Bin dans mon JDK cas (C:. \ Program Files \ Java \ jdk1.6.0_05 \ bin de)
6) Copiez le code suivant et appuyez sur Entrée
keytool -exportcert -alias androiddebugkey -keystore debug.keystore> c: \ OpenSSL \ bin \ debug.txt
7) Maintenant, vous devez entrer le mot de passe , mot de passe = Android.
8) Si vous voyez OpenSSL dossier Bin, vous obtiendrez un fichier avec le nom de debug.txt
9) Maintenant, soit vous pouvez redémarrer invite de commande ou de travail avec la commande existante invite
10) revenir à lecteur C et donner le chemin de OpenSSL Bin dossier
11) copier le code suivant et coller
OpenSSL SHA1 -binary debug.txt> debug_sha.txt
12) vous obtiendrez debug_sha.txt dans le dossier bin OpenSSL
13) copier à nouveau code suivant et coller
openssl base64 -in debug_sha.txt> debug_base64.txt
14) vous obtiendrez debug_base64.txt dans le dossier bin OpenSSL
15) ouvert debug_base64.txt fichier Voici votre clé de hachage.
RÉPONSE À JOUR (Génération par code) méthode plus simple:
Dans mon expérience, OpenSSL toujours être gênant, j'ai essayé la deuxième méthode proposée par facebook. Et il est merveilleux. Ceci est la meilleure méthode pour obtenir la clé de hachage.
Deuxième option est d'imprimer le hachage de clé envoyé à Facebook et d'utiliser cette valeur. Effectuez les modifications suivantes à la méthode onCreate () dans votre activité principale:
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
try {
PackageInfo info = getPackageManager().getPackageInfo(
"com.facebook.samples.loginhowto",
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) {
}
...other operations
}//end of onCreate
Remplacez com.facebook.samples.loginhowto avec votre propre nom de package (nom du package dans Manifest.xml).
lien officiel - https://developers.facebook.com/docs/ Android / connexion-with-facebook / (voir en bas de la page)
REPONSE OLD (Génération Keyhash utilisant openssl)
- pour générer la signature dont vous avez besoin OpenSSL installé sur votre PC. Si vous ne disposez pas d'un seul téléchargement OpenSSL d'ici
- Dans C:, Créer un dossier
openssl
- extraire le contenu du fichier zip téléchargé OpenSSL dans le dossier
openssl
dansC:
drive - Commande d'ouverture rapide
- passer à
bin
deopenssl
i.e.C:\openssl\bin
dans invite de commande -
exécutez la commande suivante pour générer votre keyhash. Lors de la génération hashkey il devrait vous demander le mot de passe.
keytool -exportcert -alias androiddebugkey -keystore "C: \ Users \ Anhsirk.android \ debug.keystore" | OpenSSL SHA1 -binary | OpenSSL base64
NOTE : dans la note de code ci-dessus, vous devez donner votre chemin à l'utilisateur (dans mon cas, il est C: \ Users \ Anhsirk, vous venez besoin de changer cela pour votre compte utilisateur.
Donner mot de passe Android
. Si elle ne demande pas de mot de passe de votre chemin keystore est incorrect.
Si tout fonctionne bien, il devrait vous donner l'hashkey ci-dessous.
La clé de droite peut être obtenue à partir de l'application elle-même en ajoutant le code suivant pour porter un toast le hachage clé appropriée (dans le cas de Facebook SDK 3.0 partir, cela fonctionne)
try {
PackageInfo info = getPackageManager().getPackageInfo("com.package.mypackage", PackageManager.GET_SIGNATURES);
for (Signature signature : info.signatures) {
MessageDigest md = MessageDigest.getInstance("SHA");
md.update(signature.toByteArray());
String sign=Base64.encodeToString(md.digest(), Base64.DEFAULT);
Log.e("MY KEY HASH:", sign);
Toast.makeText(getApplicationContext(),sign, Toast.LENGTH_LONG).show();
}
} catch (NameNotFoundException e) {
} catch (NoSuchAlgorithmException e) {
}
Remplacez com.package.mypackage avec votre nom de package
I. Créer clé débogage de hachage pour facebook
Ajoutez du code pour imprimer le hachage clé pour facebook
try {
PackageInfo info = getPackageManager().getPackageInfo(
"com.google.shoppingvn", PackageManager.GET_SIGNATURES);
for (Signature signature : info.signatures) {
MessageDigest md = MessageDigest.getInstance("SHA");
md.update(signature.toByteArray());
Log.i("KeyHash:",
Base64.encodeToString(md.digest(), Base64.DEFAULT));
}
} catch (NameNotFoundException e) {
} catch (NoSuchAlgorithmException e) {
}
II. Créer version clé de hachage pour facebook
- Télécharger OpenSSL-0.9.8e_X64
- un dossier OpenSSL dans le lecteur C
- Zip extrait les fichiers dans le dossier OpenSSL
- Démarrer -> Exécuter: cmd (appuyez sur Entrée)
- (presse) cd C: \ Program Files \ Java \ jdk1.6.0_45 \ bin. Note: C: \ Program Files \ Java \ jdk1.6.0_45 \ bin: est le chemin vers le dossier jdk dans votre ordinateur
-
(presse) keytool -exportcert -alias -keystore GCI D: \ dossier \ keystorerelease | C: \ OpenSSL \ bin \ OpenSSL SHA1 -binary | C: \ OpenSSL \ bin \ openssl base64. Note: D: \ dossier \ keystorerelease: est le chemin à votre keystorerelease
-
Entrez le mot de passe keystore. Ce mot de passe est lorsque votre keystorerelease de registre
Ensuite, vous aurez un hachage clé: jDehABCDIQEDWAYz5Ow4sjsxLSw =
-
Connexion facebook. L'accès à Gérer les applications. Coller hachage clé de votre application sur developers.facebook.com
Simplest façon de générer la clé de hachage.
Exigence: SHA1 clés
Vous pouvez trouver SHA1 Key en exécutant signingReport
Reportez-vous ci-dessous l'image.
après avoir exécuté le fichier de votre sortie sera généré contenant la clé de SHA1 nécessaire.
Alors goto http://tomeko.net/online_tools/hex_to_base64.php
et collez votre clé SHA1
et enfin vous obtiendrez requis HashKey.
SOLUTION SIMPLES LÀ POUR CE PROBLÈME:
J'ai eu ce problème depuis deux mois. Mes clés hash ont été pyling jusqu'à 9. Aujourd'hui, j'ai finalement trouvé la solution simple:
ETAPE 1:
Installer le sdk facebook vous avez téléchargé depuis la page des développeurs de facebook sur votre téléphone. Prévoir l'installation de l'application normale facebook. Assurez-vous que vous pouvez vous connecter à facebook. Puis fermer la session.
ETAPE 2:
Exporter votre application avec votre clé de la version finale en tant apk, comme vous le feriez lors du téléchargement à la Playstore.
ETAPE 3:
Placez le fichier Apk sur votre téléphone via un câble USB ou clé usb.
ÉTAPE 4:
Installer votre application, en utilisant un gestionnaire de fichiers: Exemple
ETAPE 5:
Lancez votre application et essayez de vous connecter avec facebook. Une boîte de dialogue ouvert et vous dire: « la YOURHASHKEY clé n'a pas été trouvée dans la console développeur facebook »
ETAPE 6:
Notez la clé.
STEP 7:
Mettez dans votre console développeur facebook et enregistrer. Maintenant, vous avez terminé. Toute personne qui télécharge votre application, publié avec keystore utilisé précédemment peuvent se connecter à facebook.
Profitez
Si vous publiez, utilisez le keystore que vous avez utilisé pour exporter votre application avec et non le debug.keystore.
Le mot de passe du certificat de débogage est android et non Android
Enfin:)
Voici mon histoire:
-
Ajoutez ce code à votre activité principale, après avoir défini la mise en page.
try { PackageInfo info = getPackageManager().getPackageInfo("PROJECTNAME", PackageManager.GET_SIGNATURES); for (Signature signature : info.signatures) { MessageDigest md = MessageDigest.getInstance("SHA"); md.update(signature.toByteArray()); String sign=Base64.encodeToString(md.digest(), Base64.DEFAULT); Log.e("MY KEY HASH:", sign); //textInstructionsOrLink = (TextView)findViewById(R.id.textstring); //textInstructionsOrLink.setText(sign); Toast.makeText(getApplicationContext(),sign, Toast.LENGTH_LONG).show(); } } catch (NameNotFoundException e) { Log.d("nope","nope"); } catch (NoSuchAlgorithmException e) { }
-
Modifier PROJECTNAME à votre nom de package!
- Signez votre application (Android Outils-> Exporter Signed Application)
- Dans votre activité principale où vous collez le code de 2 options, dans votre mise en page créer TextView avec id textstring
- deux lignes décommentez, que votre code gestuel seraient mis à TextView 6 Wuolia, vous avez votre HASH, installez l'application sur votre téléphone !!! et vérifiez votre Dièse!
- Maintenant, quand il est visible, allez à l'application facebook créé et ajoutez-le à [Hashes Key]
- Notez que le nom de votre paquet devrait être le même que sur facebook [Nom du paquet] sous [Key Hashes]
- Avoir une belle journée:)
solution d'une ligne à générer pour facebook
keytool -exportcert -alias androiddebugkey -keystore ~/.android/debug.keystore | openssl sha1 -binary | openssl base64
Afin de générer la libération de hachage clé que vous devez suivre quelques étapes faciles.
Même si ce fil est vieux, mais je voudrais vous faire part de mon expérience (récemment commencé à travailler avec facebook), qui me semble tout droit:
- Télécharger OpenSSL à partir du lien ci-dessous: https://code.google.com/p/openssl-for-windows / téléchargements / liste
- décompresser un lecteur local (par exemple, C: \ openssl)
-
Pour obtenir la clé de développement pour l'intégration de facebook, utilisez la commande suivante à partir de la ligne de commande dans les fenêtres:
keytool -exportcert -alias androiddebugkey -keystore% HOMEPATH% .android \ debug.keystore | "C: \ OpenSSL \ bin \ openssl.exe" SHA1 -binary | "C: \ OpenSSL \ bin \ openssl.exe" base64
NOTE !: s'il vous plaît remplacer le chemin openssl.exe (dans cet exemple, il est "C: \ OpenSSL \ bin \ openssl.exe".) Avec votre propre chemin d'installation
- Il vous demandera le mot de passe, par exemple.
Entrez le mot de passe keystore: Android
Type Android comme mot de passe comme indiqué ci-dessus.
Thats it! Vous recevrez une clé longue de 28 caractères. Vive!
Utilisez la même procédure pour obtenir la clé de sortie. Il suffit de remplacer la commande par ce qui suit et utilisez votre version alias touche.
keytool -exportcert -alias YOUR_RELEASE_KEY_ALIAS -keystore YOUR_RELEASE_KEY_PATH | "CHEMIN POUR openssl.exe" SHA1 -binary | openssl base64
Générer débogage clé de hachage
public String hashkey(Context context) {
String keyhash = "";
try {
PackageInfo info = context.getPackageManager().getPackageInfo(context.getPackageName(), 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));
keyhash = Base64.encodeToString(md.digest(), Base64.DEFAULT);
}
} catch (PackageManager.NameNotFoundException e) {
} catch (NoSuchAlgorithmException e) {
}
return keyhash;
}
Générer la clé de hachage de presse
keytool -exportcert -alias specialbridge -keystore /home/shilpi/newproject/specialBridge/SpecialBridgeAndroid/keystore/specialbridge.jks | openssl sha1 -binary | openssl base64
Grand billet de blog sur le sujet
Extraire le Dièse de p12 touche
- Ligne Ouvrez Terminal ou commande et accédez à l'endroit où votre clé p12 est.
- Tapez:. « Keytool -list -v -keystore mycert.p12 -storetype pkcs12" où mycert.p12 est le nom de votre clé .p12
- Entrez le mot de passe keystore (celui que vous avez utilisé lors de l'exportation p12 clé). 4. Copier la signature d'empreintes digitales SHA1 octets texte.
- Les octets à la signature d'empreintes digitales SHA1 sont nécessaires pour écrire le fichier « sha1.bin ». Vous pouvez utiliser un éditeur hexadécimal pour coller les octets copiés. Ensuite, enregistrez le fichier en tant que « sha1.bin ».
- Ouvrez le terminal nouveau et tapez:. « Openssl base64 -in sha1.bin base64.txt -out »
- Le résultat « base64.txt » contiendra la clé Hash qui est nécessaire pour Facebook.
Grande et simple éditeur hexadécimal pour Mac: HexFiend
OpenSSL devrait être pré-installé sur mac, et voici le lien pour la version de Windows.
Essayez de passer le mot de passe pour la clé et stocker dans le cadre de la commande
keytool -exportcert -alias androiddebugkey -keystore ~/.android/debug.keystore -keypass android -storepass android \
| openssl sha1 -binary \
| openssl base64
j'ai pu faire exécuter la tâche demandée avec quelques-unes des solutions ici, mais me suis dit, mon garçon qui est stupide ... pourquoi ne pas écrire un petit code Java qui le fait cela et emballer dans un pot, donc Je l'ai fait ...
Travaux sur Windows 8 ... n'a pas essayé de tout autre système d'exploitation.
Salut tout le monde est mon histoire comment je faire signer a clé pour facebook
D'abord vous avez tous suffit de copier ce 2 méthodes dans votre première classe
private void getAppKeyHash() {
try {
PackageInfo info = getPackageManager().getPackageInfo(
getPackageName(), PackageManager.GET_SIGNATURES);
for (Signature signature : info.signatures) {
MessageDigest md;
md = MessageDigest.getInstance("SHA");
md.update(signature.toByteArray());
String something = new String(Base64.encode(md.digest(), 0));
System.out.println("HASH " + something);
showSignedHashKey(something);
}
} catch (NameNotFoundException e1) {
// TODO Auto-generated catch block
Log.e("name not found", e1.toString());
} catch (NoSuchAlgorithmException e) {
Log.e("no such an algorithm", e.toString());
} catch (Exception e) {
Log.e("exception", e.toString());
}
}
public void showSignedHashKey(String hashKey) {
AlertDialog.Builder adb = new AlertDialog.Builder(this);
adb.setTitle("Note Signed Hash Key");
adb.setMessage(hashKey);
adb.setPositiveButton("OK", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int which) {
}
});
adb.show();
}
** Appel funcation getAppKeyHash () de votre oncreate Methode si vous voulez signé hash puis faire signer build installer construire signé et exécution, vous obtenez la clé de hachage dans le dialogue puis juste noter et mettre à jour sur facebook compte dev et commenter cette fonction et faire un autre APK signé **
La seule chose à travailler pour moi utilise le mot de passe android
. Pourquoi est-ce pas mentionné dans les guides là-bas?
utiliser dans Kotlin pour hachage clé d'impression dans le journal
try {
val info = context.getPackageManager().getPackageInfo(context.packageName,
PackageManager.GET_SIGNATURES);
for (signature in info.signatures) {
val md = MessageDigest.getInstance("SHA")
md.update(signature.toByteArray())
Log.d("Key hash ", android.util.Base64.encodeToString(md.digest(), android.util.Base64.DEFAULT))
}
}catch (e:Exception){
}