Je ne sais pas comment obtenir le hachage de clé requis pour utiliser le Facebook Android SDK. J'ai compris que je pouvais utiliser keytool
avec ces commandes:
keytool -exportcert -alias [alias]
-keystore [keystore] | openssl sha1 -binary | openssl enc -a -e
Le seul problème est que je ne sais pas où l'insérer, j'ai essayé via les fenêtres de commande (win7) et j'ai essayé d'ouvrir le fichier keytool.exe.
Vous pouvez installer Open SSL à partir de ici , cela devrait faire fonctionner votre commande
J'ai créé un script batch facebookkeydebug.bat , qui renvoie le hachage de clé Facebook souhaité. Modifiez simplement le script, définissez les chemins d'accès corrects, le nom du fichier de clés et exécutez-le.
:: Getting Android key hash for Facebook app on Windows
:: Requirement: OpenSSL for Windows (http://code.google.com/p/openssl-for-windows/downloads/list)
:: Usage: set paths and run facebookkeydebug.bat
@echo Exporting keystore cert
keytool -exportcert -alias androiddebugkey -keystore C:\Users\myusername\.Android\debug.keystore -storepass Android -keypass Android > debug.keystore.bin
@echo Converting to sha1
C:\PROGRAMS\openssl-0.9.8k_X64\bin\openssl sha1 -binary debug.keystore.bin > debug.keystore.sha1
@echo Converting to base64
C:\PROGRAMS\openssl-0.9.8k_X64\bin\openssl base64 -in debug.keystore.sha1 -out debug.keystore.base64
@echo Done, Android hash key for Facebook app is:
C:\PROGRAMS\openssl-0.9.8k_X64\bin\openssl base64 -in debug.keystore.sha1
@pause
EDIT: J'ai publié un dépôt avec quelques scripts batch pour signer et obtenir des clés cert sur Windows: https://github.com/petrnohejl/Android-Scripts
vous pouvez utiliser le code ci-dessous pour obtenir la clé de hachage:
try {
PackageInfo info = getPackageManager().getPackageInfo(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));
}
} catch (NameNotFoundException e) {
Log.e("name not found", e.toString());
} catch (NoSuchAlgorithmException e) {
Log.e("no such an algorithm", e.toString());
}
Référence :
http://limbaniandroid.blogspot.com/2013/04/how-to-get-hash-key-for-integarte.html
Pour faciliter les choses -
keytool.exe -list -alias androiddebugkey -keystore debug.keystore -v
cela devrait vous fournir les empreintes digitales nécessaires, sans avoir à installer openssl.
par exemple.
Certificate fingerprints:
MD5: 1A:5E:AA:CB:1A:CF:68:F0:8B:DA:D8:BC:EE:4F:BF:EE
SHA1: D2:89:D1:5A:BC:F8:E3:E5:62:4D:DD:20:DD:96:CD:AB:51:A1:C1:7F
Signature algorithm name: SHA1withRSA
Version: 3
nous devons d'abord obtenir les chemins de:
Chemin Java: C:\Program Files\Java\jdk1.6.0_35\jre\bin
Chemin SSL ouvert: C:\OpenSSL-Win32\bin
(installez à partir de: http://www.openssl.org/ )
Chemin du magasin de clés: C:\Data\Android\KEYSTORE \
2) puis allez sur Ligne de commande et tapez:
cd [chemin Java]
3) puis tapez:
keytool.exe -exportcert -alias [nom d'alias] -keystore [Chemin du magasin de clés]\debug.keystore | [Ouvrir le chemin SSL]\openssl sha1 -binary | [Ouvrir le chemin SSL]\bin\openssl base64
4) le mot de passe de votre Keystore doit être requis et vous avez alors le Hash Key
lié à votre Android Keystore.
Key Hash
pour Facebook
:https://developers.facebook.com/docs/Android/getting-started#release-key-hash
Vous devez ouvrir une fenêtre d'invite de commandes. Allez dans Démarrer-> Exécuter et tapez 'cmd' et appuyez sur Entrée. Ensuite, vous devez accéder au dossier où se trouve keytool
(sauf s'il se trouve dans votre chemin), puis tapez cette commande.
Autrement dit, en supposant que cette commande concerne Windows et non Linux.
Le meilleur moyen est de générer Key-Hash en utilisant du code:
public static void generateKeyHash(Context context) {
try {
PackageInfo info = context.getPackageManager().getPackageInfo(
"com.example.user2.testapp",
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 (PackageManager.NameNotFoundException e) {
} catch (NoSuchAlgorithmException e) {
}
}
appeler cette méthode une fois et générer un hachage de clé, profitez
C:\Program Files\Java\jdk1.6.0_22\bin\keytool.exe -exportcert -alias "typeYouraliasname" -emplacement du magasin de clés de votre magasin de clés | C:\OpenSSL-Win32\bin\openssl sha1 -binaire | C:\OpenSSL-Win32\bin\openssl base64