アプリに署名し、デスクトップ上のフォルダーにエクスポートしました。このフォルダー内のappは、アプリ自体とキーストアです。 Facebook開発者ページにコピーできるキーハッシュを見つけるにはどうすればよいですか。私はopensslをインストールしていますが、スタック上の他の多くのスレッドを試したキーハッシュを生成することはできません。
ジェームス
C:\Users\Selvin\Desktop\selvin.kp
selvin
C:\Program Files\Java\jdk1.6.0_22\bin\keytool.exe
C:\OpenSSL-Win32\bin\openssl.exe
次に、呼び出す必要があります。
C:\ Program Files\Java\jdk1.6.0_22\bin\keytool.exe "-exportcert -alias selvin -keystore c:\ users\selvin\desktop\selvin.kp | C:\ OpenSSL-Win32\bin\openssl sha1 -binary | C:\ OpenSSL-Win32\bin\openssl base64
パスとエイリアスを適切なものに置き換えます。
次に表示されるはずです:
キーストアのパスワードを入力してください:
パスワードを入力すると、次のようなものが表示されます:NfhDlIH7XWJzUZRjL+pZySrMX1Q=
[〜#〜]編集済み[〜#〜]:NfgDlIG7XWJzUZRUL+bZySrMX1Q=
<-は悪いハッシュです。または、キーが同じ衝突をしたほど幸運になった
error:keytool error:Java.lang.Exception:Alias does not exist
ハッシュが機能しない場合:
まず、電話
C:\ Program Files\Java\jdk1.6.0_22\bin\keytool.exe "-exportcert -alias selvin -keystore c:\ users\selvin\desktop\selvin.kp
パスワードを入力してエラーを読む
エイリアスを覚えていない場合はkeytool error: Java.lang.Exception: Alias <selvinn> does not exist
selvinnを使用してエラーを表示しました。
すべてのエントリ/エイリアスのリスト:
C:\ Program Files\Java\jdk1.6.0_22\bin\keytool.exe -list -keystore c:\ users\selvin\desktop\selvin.kp
2番目の編集
まだ苦労している人のために、これらの手順を正しく実行すると確かに機能することがわかりましたが、最初に正しく取得することは非常に難しい場合があります(ハッシュは何らかの理由で切り捨てられます)。すでに述べたこれらの指示のほとんどをまとめたさまざまなバッチファイルを書いたので、そこで問題を除外することはしません。
ただし、ほとんどの人はopensslの段階で落ちます(見つからないか、使い方がわからないか、WindowsパイピングがSHA1エクスポートからbase64変換入力への出力を正しくチェーンしません)。
これを回避するために、おそらく理解しやすいと思われる別の方法を使用できます。基本的に、facebook APIが必要とするのは、APKのフィンガープリントに使用されるSHA1ハッシュのbase64表現(エンコード)です。これを行うには、キーストアをリストするだけです。
"C:\Program Files\Java\JRE6\Bin\keytool.exe" -list -v -keystore "Path-to-your-keystore" -storepass "KeystorePassword" > somefile.txt
明らかに、独自の設定に従ってkeytool実行可能ファイルへのパスを変更し、「Path-to-your-keystore」と「KeystorePassword」をキーストアのパスとパスワードに置き換える必要があります。結果として、現在のフォルダーに「sometext.txt」というファイルが作成され、任意のテキストエディターで開くことができます。テキストファイルには、すべてのキーストアエイリアス 'とそれぞれのMD5およびSHA1ハッシュが16進文字列としてリストされます。
APKの署名に使用されるエイリアスを見つけ、SHA1ハッシュをコピーし、オンラインの16進数からbase64へのコンバーターを使用して、facebookが必要とするbase64エンコード形式に変換します。 「オンラインhexからbase64へのコンバーター」をグーグルで検索して、オンラインコンバーターを見つけることができます。 this one を使用してきました。テキストファイルから文字列をコピーして、指定されたボックスに貼り付けるだけで、各16進バイトを区切るコロンが削除されます。
最後の1つのポイント(やや明らかですが..)は、SHA1:プレフィックスではなく、16進文字列のみをコピーして貼り付けます!
これが誰かを助けることを願っています。それは確かに私のために働く!
まず、セルビンに感謝したいです!
この答えはSelvinの答えとほとんど同じですが、それを動作させるのにまだ3時間かかりました:P本当の初心者のためのもう少しのチュートリアル
キーストアからhashKeyを取得する方法
場所keytool C:\ Program Files(x86)\ Java\jdk1.xxx)\ bin\keytool location openssl C:\ OpenSSL-Win32\bin\OpenSSL location(debug)keystore C:\ Users [usernamepc] .Android\debugキーストア
windowsでcmdを開き(start-> run-> cmd)、keytoolの場所に移動するか、次の文字列をコピーして貼り付けます。ctrl+ vは使用できず、右クリック
cd c:\program files (x86)\Java\jdk1.7.0_01\bin
正しいディレクトリにあるとき、この文字列をcmd行に貼り付けます:
keytool.exe -exportcert -alias androiddebugkey -keystore c:\users\charx\.Android\debug.keystore | C:\OpenSSL-Win32\bin\openssl sha1 -binary | C:\OpenSSL-Win32\bin\openssl base64
「C:\ OpenSSL-Win32\bin\openssl」はopensssl.exeのパスであり、openssl.exeのパスに置き換えます
yourtoの[usernamepc]をPCの名前に変更してください。私の場合はcharxです。また、Java jdk xxxxのディレクトリはバージョンによって異なります。
cmdはハッシュキーを表示する必要があります
私のデバッグファイルのハッシュキーは
h1GdQbgB8b/liCG+acmZWkgIRHA=
Eclipseを使用したソリューション(私のような怠け者向け)。
Eclipseで任意のプロジェクトを選択し、エクスポート-Android Application、キーパスなどを入力します。下部の最後のページにMD5:.... SHA1:....が表示されます。
SHA1文字列をコピーして、任意のHEX-Base64オンラインコンバーターに貼り付けます(たとえば、この1つ: http://tomeko.net/online_tools/hex_to_base64.php )
おめでとうございます! Facebook Dev Consoleに必要なキーハッシュを取得しました。
上記のソリューションは何らかの理由で機能しませんでしたが、キーハッシュを正常に生成することができました。署名済みapkのキーハッシュを取得するための10の最も簡単な手順を書いています[apk signed with keystore]:
以下のコードを_activity [start Activity]
_にコピーします。このコードはアクティビティに含まれている必要があります。これにより、署名されたapkのアクティビティの開始時に適切なキーハッシュを抽出できます。
_private void getHashKey() {
try {
PackageInfo info = getPackageManager().getPackageInfo(
getPackageName(), PackageManager.GET_SIGNATURES);
for (Signature signature : info.signatures) {
MessageDigest md = MessageDigest.getInstance("SHA");
md.update(signature.toByteArray());
Log.e("MY_KEY_HASH:",
Base64.encodeToString(md.digest(), Base64.DEFAULT));
}
} catch (NameNotFoundException e) {
} catch (NoSuchAlgorithmException e) {
} }
_
_AndroidManifest.xml
_ファイルには、アプリケーションタグに属性_Android:allowBackup="true"
_が必要です。
署名済みapkをエクスポートし、携帯電話にアプリをインストールしてから、デバッグモードで_usb debugging on
_を使用して携帯電話を接続します。
次に_sdk\platform-tools
_に移動します
コマンドプロンプトを開き、_adb devices
_と入力して、デバイスが接続されているかどうかを確認します。デバイスがリストにない場合は、次の手順に進む前にその問題を修正してください。
次に、_adb logcat >"log.txt"
_と入力します。 cmd
画面はハングしたようになります。パニックしないでください。 logcat全体が_log.txt
_に書き込まれているため、完全に正常です。
アプリを実行し、できればgetHashKey()
関数が実行されていると考えたら、コマンドプロンプトで_ctrl+c
_を押して、ログファイルの書き込みを終了してください。
これで、コマンドプロンプトが再び応答するようになります。 _sdk\platform-tools
_ dirに移動すると、ログを含むlog.txtファイルが作成されていることがわかります。
texteditor
で開き、_MY_KEY_HASH:
_を検索します "-----------あなたのキーハッシュ-------"
FB account
_または必要な場所にコピーしてから、_Android:allowBackup="false"
_およびgetHashKey()
関数が削除された別のビルドを作成します。これがみんなの助けになることを願っています:)
私はこれを心配することはできませんでした.Facebookのsdkが実際に送信しているものを見て、署名されたアプリを一時的なコードでエクスポートしてfacebook error.toString()を表示し、ハッシュキーを探してハッシュキーを探しますFacebookアプリとビンゴ!
味方を使用する場合、このコマンドを使用してキーストアエイリアスを検索します