Facebook Android SDKを使用するのに必要なキーハッシュを取得する方法がわかりません。これらのコマンドでkeytool
を使用できることがわかりました。
keytool -exportcert -alias [alias]
-keystore [keystore] | openssl sha1 -binary | openssl enc -a -e
唯一の問題は、これをどこに挿入するかわからないことです。コマンドウィンドウ(win7)で試し、keytool.exeファイルを開いてみました。
Open SSLを here からインストールできます。これにより、コマンドが機能します。
目的のFacebookキーハッシュを返すバッチスクリプトfacebookkeydebug.batを作成しました。スクリプトを編集し、正しいパス、キーストア名を設定して実行するだけです。
:: 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
編集:Windowsで証明書キーに署名して取得するためのバッチスクリプトを含むリポジトリを公開しました: https://github.com/petrnohejl/Android-Scripts
以下のコードを使用してハッシュキーを取得できます。
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());
}
参照 :
http://limbaniandroid.blogspot.com/2013/04/how-to-get-hash-key-for-integarte.html
物事を簡単にするために-
keytool.exe -list -alias androiddebugkey -keystore debug.keystore -v
これにより、opensslをインストールする手間をかけずに、必要な指紋が提供されます。
例えば.
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
まず、次のパスを取得する必要があります。
Javaパス:C:\ Program Files\Java\jdk1.6.0_35\jre\bin
SSLパスを開く:C:\ OpenSSL-Win32\bin
(インストール元: http://www.openssl.org/ )
キーストアパス:C:\ Data\Android\KEYSTORE \
2)次に、コマンドラインに移動して、次のように入力します。
cd [Javaパス]
3)次に入力:
keytool.exe -exportcert -alias [エイリアス名] -keystore [キーストアパス]\debug.keystore | [SSLパスを開く]\openssl sha1 -binary | [SSLパスを開く]\bin\openssl base64
4)キーストアのパスワードが必要で、その後、Androidキーストアに関連するHash Key
]が必要です。
Facebook
にKey Hash
を設定する方法のドキュメントです。https://developers.facebook.com/docs/Android/getting-started#release-key-hash
コマンドプロンプトウィンドウを開く必要があります。 start-> runに移動して「cmd」と入力し、Enterキーを押します。次に、keytool
が存在するフォルダー(パスにない場合)に移動し、そのコマンドを入力する必要があります。
つまり、コマンドはLinux用ではなくWindows用であると想定しています。
最良の方法は、コードを使用してキーハッシュを生成することです。
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) {
}
}
このメソッドを一度呼び出してキーハッシュを生成し、楽しんでください
C:\ Program Files\Java\jdk1.6.0_22\bin\keytool.exe -exportcert -alias "typeYouraliasname"-キーストアのキーストアの場所| C:\ OpenSSL-Win32\bin\openssl sha1 -binary | C:\ OpenSSL-Win32\bin\openssl base64