Facebook Androidはキーハッシュを生成します
-
24-10-2019 - |
質問
Facebook統合を備えたAndroidアプリを作成しようとすると、キーハッシュファイルを生成する必要があるドキュメントのパートに到達しました。次のコードを実行することを指定します。
keytool -exportcert -alias androiddebugkey -keystore ~/.android/debug.keystore
| openssl sha1 -binary
| openssl base64
ターミナルでこれを実行すると、キーストアが改ざんされたエラーが発生したか、パスワードが正しくありませんでした。
キーハッシュを生成したいだけです
誰かが私を正しい方向に向けることができますか?
解決
〜/.android/debug.keystore(Linux and Mac OS Xで)でデバッグ証明書を削除します。ディレクトリは、Windows上のAndroid%のようなものです。
Eclipseプラグインは、次にデバッグパッケージを構築しようとするときに新しい証明書を生成する必要があります。
それがうまくいくかどうか教えてください。
他のヒント
キーハッシュを生成するには、簡単な手順に従う必要があります。
1)openSSLをダウンロードしてください。 ここ。
2)make a openssl フォルダーイン c ドライブ
3)zipファイルをこれに抽出します openssl で作成されたフォルダー c ドライブ。
4)ファイルをコピーします debug.keystore から 。アンドロイド 私の場合のフォルダー(c: users system.android)と私の場合はjdk binフォルダーに貼り付けます(c:プログラムファイル java jdk1.6.05 bin)
5) コマンドプロンプトを開く 私の場合はJDK BINフォルダーのパスを与えます(C: Program Files Java jdk1.6.05 bin)。
6)次のコードをコピーして、Enterを押します
keytool -exportcert -alias androiddebugkey -keystore debug.keystore> c: openssl bin debug.txt
7)今、あなたはする必要があります パスワードを入力する, 、パスワード= Android。
8)あなたが見るなら openssl binフォルダー、の名前のファイルが表示されます debug.txt
9)コマンドプロンプトを再起動するか、既存のコマンドプロンプトで動作することができます
10)Cドライブに戻り、 OpenSSLビンのパスを与えます フォルダ
11)次のコードをコピーして貼り付けます
OpenSSL SHA1 -BINARY DEBUG.TXT> DEBUG_SHA.TXT
12)あなたは得るでしょう debug_sha.txt OpenSSL binフォルダー
13)次のコードと貼り付けを再度コピーします
opensSl base64 -in debug_sha.txt> debug_base64.txt
14)あなたは得るでしょう debug_base64.txt OpenSSL binフォルダー
15)開く debug_base64.txt ここにファイルがあなたの重要なハッシュです。
更新された回答(コードを介して生成)よりシンプルな方法:
私の経験では、OpenSSLは常に厄介であり、Facebookが提案した2番目の方法を試しました。そして、それは素晴らしいです。これは、ハッシュキーを取得するための最良の方法です。
2番目のオプションは、Facebookに送信されたキーハッシュを印刷して、その値を使用することです。メインアクティビティのOnCreate()メソッドに次の変更を加えます。
@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
com.facebook.samples.loginhowtoを独自のパッケージ名(manifest.xmlのパッケージ名)に置き換えます。
公式リンク - https://developers.facebook.com/docs/android/login-with-facebook/ (ページの下部を参照)
古い答え(OpenSSLを使用してKeyHashを生成)
- 署名を生成するには、PCにOpenSSLをインストールする必要があります。ダウンロードが1つない場合はOpenSSL ここから
- c:、create
openssl
フォルダ - ダウンロードされたopenSSL zipファイルの内容を抽出します
openssl
フォルダーインC:
ドライブ - コマンドプロンプトを開く
- へ引っ越す
bin
のopenssl
すなわちC:\openssl\bin
コマンドプロンプト 次のコマンドを実行して、キーハッシュを生成します。 Hashkeyを生成している間、パスワードを尋ねる必要があります。
keytool -exportcert -alias androiddebugkey -keystore "c: uses anhsirk.android debug.keystore" | opensSl sha1 -binary | OpenSSL Base64
ノート: :上記のコードでは、与える必要があることに注意してください ユーザーへの道 (つまり、私の場合、それはC: users anhsirkです。ユーザーアカウントに対してこれを変更するだけです。
パスワードを与えます アンドロイド
. 。パスワードを要求しない場合、キーストアパスが正しくありません。
すべてが正常に機能する場合は、以下のハッシュキーを提供する必要があります。
適切なキーは、適切なキーハッシュをトーストするために次のコードを追加することでアプリ自体から取得できます(Facebook SDK 3.0以降、これは機能します)
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) {
}
com.package.mypackageをパッケージ名に置き換えます
I. Facebook用のキーハッシュデバッグを作成します
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。 Facebookのキーハッシュリリースを作成します
- ダウンロード OpenSSL-0.9.8E_X64
- CドライブでOpenSSLフォルダーを作成します
- zipファイルをopenSSLフォルダーに抽出します
- 起動 - >実行:cmd(Enterを押す)
- (プレス)CD C:プログラムファイル Java jdk1.6.0_45 bin。注:c:プログラムファイル java jdk1.6.0_45 bin:コンピューター内のJDKフォルダーへのパスです
(プレス)keytool -exportcert -alias GCI -KeyStore D: Folder keyStorerElease | c: openssl bin openssl sha1 -binary | c: openssl bin openssl base64。注:d: folder keystorerelease:your yourstorereleaseへのパス
キーストアのパスワードを入力します:これは、登録keystorereleaseの場合のパスワードです。
次に、キーハッシュがあります:jdehabcdiqedwayz5ow4sjsxlsw =
フェイスブックにログイン。アプリを管理するためのアクセス。 developers.facebook.comのアプリにキーハッシュを貼り付けます
ハッシュキーを生成する最も簡単な方法。
要件: SHA1キー
実行してSHA1キーを見つけることができます 署名レポート
以下の画像を参照してください。
ファイルを実行すると、必要なSHA1キーが含まれて出力が生成されます。
それからgotohttp://tomeko.net/online_tools/hex_to_base64.php
SHA1キーを貼り付けます
そして最後に、必要なハッシュキーを取得します。
この問題のための最も単純な解決策:
私はこの問題を2か月間抱えています。私の重要なハッシュは最大9までの鳴き声でした。今日、私はついに簡単な解決策を見つけました:
ステップ1:
携帯電話のFacebook開発者ページからダウンロードしたFacebook SDKをインストールします。通常のFacebookアプリをインストールしません。 Facebookにログインできることを確認してください。次に、ログアウトします。
ステップ2:
PlayStoreにアップロードするときに、最終リリースキーでアプリをAPKとしてエクスポートします。
ステップ3:
USBケーブルまたはUSBスティックを介して携帯電話にAPKファイルを掲載します。
ステップ4:
ファイルマネージャーを使用してアプリをインストールします。 例
ステップ5:
アプリを起動して、Facebookでログインしてみてください。ダイアログが開かれ、「Facebook開発者コンソールでYourHashkeyが見つかりませんでした」
ステップ6:
キーを書き留めます。
ステップ7:
Facebook開発者コンソールに入れて保存します。今あなたは終わりました。以前に使用されているキーストアで公開されていたアプリをダウンロードする人は誰でも、Facebookにログインできます。
楽しみ
リリースしている場合は、Debug.KeyStoreではなく、アプリをエクスポートするために使用したキーストアを使用してください。
デバッグ証明書のパスワードはAndroidであり、Androidではありません
やっと :)
ここで私の話:
レイアウトを設定した後、このコードをメインアクティビティに追加します。
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) { }
プロジェクト名をパッケージ名に変更してください!
- アプリに署名します(Androidツール - >署名されたアプリケーションのエクスポート)
- 2つのオプションからコードを貼り付けるメインアクティビティでは、レイアウトでID TextStringを使用してTextViewを作成します
- 2行の1行、サインコードがTextView 6 Wuoliaに設定されていることを確認してください。ハッシュ、携帯電話にアプリをインストールしてください!!!そして、あなたのハッシュキーをチェックしてください!
- これが表示されたら、作成したFacebookアプリに移動して[キーハッシュ]に追加します
- パッケージ名は[キーハッシュ]の下のFacebook [パッケージ名]と同じであることに注意してください
- 良い1日を :)
Facebook用に生成する1つのラインソリューション
keytool -exportcert -alias androiddebugkey -keystore ~/.android/debug.keystore | openssl sha1 -binary | openssl base64
キーハッシュをリリースするには、簡単な手順に従う必要があります。
1)ダウンロード openssl
2)CドライブでOpenSSLフォルダーを作成します
3)cドライブで作成されたこのopenSSLフォルダーにzipファイルを抽出します。
4)私の場合の.Androidフォルダー(C: Users System.Android)からファイルdebug.keystoreをコピーし、私の場合のJDKビンフォルダーに貼り付けます(C:プログラムファイル Java JDK1.6.0_05 bin)
5)コマンドプロンプトを開き、私の場合のJDKビンフォルダーのパスを提供します(C:プログラムファイル Java jdk1.7.0_40 bin)。
6)次のコードをコピーして、Enterを押します
keytool -exportcert -alias abcd -keystore d: projects myappfolder keystore.txt | c: openssl bin openssl sha1 -binary | c: openssl bin openssl base64 ex -keytool -exportcert -alias(sing apkエイリアス名のようにここに入る私のサインのようにここに入りますapk alian name is abcd is abcd)-keystore "signed apk generated keystore apth ent inter" | 「OpenSSl binフォルダーパスがここに入る」Sha1 -binary | 「OpenSSL binフォルダーパスがここに入る」base64
7)パスワードを入力する必要があります、パスワード=(ここに署名キーストアのパスワードを入力してください)
8)リリースアプリキーハッシュに使用されるキーストアがあります
このスレッドは古いですが、私の経験(最近Facebookで働き始めた)を共有したいと思います。
- リンクBellowからOpenSSLをダウンロードしてください:https://code.google.com/p/openssl-for-windows/downloads/list
- それをローカルドライブに解凍します(例:c: openssl)
Facebook統合の開発キーを取得するには、Windowsのコマンドラインから次のコマンドを使用します。
keytool -exportcert -alias androiddebugkey -keystore%homepath%.android debug.keystore | "c: openssl bin openssl.exe" sha1 -binary | "c: openssl bin openssl.exe" base64
注!:openssl.exeのパスを交換してください(この例では、「c: openssl bin openssl.exe」です)。
- パスワードを求めます。
Keystoreパスワード:Androidを入力します
上記のようにパスワードとしてAndroidを入力します。
それでおしまい! 28文字の長いキーが与えられます。乾杯!
同じ手順を使用して、リリースキーを取得します。コマンドを次のものに置き換えて、リリースキーエイリアスを使用してください。
keytool -exportcert -alias your_release_key_alias -keystore your_release_key_path | 「OpenSSl.Exeのパス」SHA1 -BINARY | OpenSSL Base64
デバッグハッシュキーを生成します
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;
}
リリースハッシュキーを生成します
keytool -exportcert -alias specialbridge -keystore /home/shilpi/newproject/specialBridge/SpecialBridgeAndroid/keystore/specialbridge.jks | openssl sha1 -binary | openssl base64
このテーマに関する素晴らしいブログ投稿
.p12キーからキーハッシュを抽出します
- ターミナルまたはコマンドラインを開き、.p12キーがある場所に移動します。
- 入力:「keytool -v -list -keystore mycert.p12 -storetype pkcs12」ここで、mycert.p12は.p12キーのファイル名です。
- キーストアパスワード(エクスポート時に使用したパスワード)を入力します。 4。 SHA1フィンガープリント署名バイトテキストをコピーします。
- SHA1指紋署名のバイトは、「Sha1.bin」ファイルを書き込むために必要です。 16進エディタを使用して、コピーしたバイトを貼り付けることができます。その後、ファイルを「sha1.bin」として保存します。
- ターミナルを再度開いて入力します:「OpenSSL base64 -in Sha1.bin -out base64.txt」。
- 結果の「base64.txt」には、Facebookに必要なキーハッシュが含まれます。
MACの優れたシンプルな16進編集者:HexFiend
OpenSSLはMacにプリインストールする必要があります。Windowsバージョンのリンクを次に示します。
コマンドの一部としてキーと保存するパスワードを渡してみてください
keytool -exportcert -alias androiddebugkey -keystore ~/.android/debug.keystore -keypass android -storepass android \
| openssl sha1 -binary \
| openssl base64
私はここでいくつかの解決策を使用して要求されたタスクを実行することができましたが、自分自身に考えました、それは愚かな少年です...なぜこれを行う小さなJavaコードを書いて、それを瓶に詰め込んでいないので、私はしました。 ..
a ダウンロードへのリンク 瓶
Windows 8で動作します...他のOSを試しませんでした。
みなさん、こんにちは。
まず第一に、あなたはあなたのファーストクラスでこの2つの方法をコピーしました
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();
}
** suncreate methodeからファンセーションgetappkeyhash()を呼び出してください署名済みハッシュが必要な場合は、署名済みのビルドインストールを作成します署名付きビルドを実行します。署名されたapk **
パスワード= Androidが間違っている場合は、PCパスワードを私に合わせて動作します。
そして、KeyHashを生成するには、このリンクを試してください ここ
私のために働いている唯一のことはパスワードを使用することです android
. 。なぜそれがそこにあるガイドに言及されていないのですか?
ログのプリントキーハッシュにこれをKotlinで使用します
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){
}