1

私が試してみました

keytool -exportcert -alias androiddebugkey -keystore ~/.android/debug.keystore | openssl sha1 -binary | openssl base64

そして、私はキーハッシュを取得します1knQ67Fx4PUOYXggSe+mnzqaTL8=

しかし、グーグル自身のドキュメントは代替案も示唆しています

try {
    PackageInfo info = getPackageManager().getPackageInfo(
            "com.facebook.samples.hellofacebook", 
            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) {
}

しかし、これはをもたらしUR02fNgzyMOjpWCxUnjGZ4ctF6Y=ます。私はそれを二重に検証し、これら2つの値をそれぞれのアプローチと一貫して取得しています。

なぜ違うのですか?そして、developers.facebook.comに登録する必要があるのはどれですか?ドキュメントはあまり明確ではないようです。

編集:

Offbeatmammalが言うように、Facebookサイトで複数のキーを登録できます。だから大丈夫です。ただし、アプリケーションマニフェストファイルでキーハッシュも指定する必要があります。それで、さらに尋ねます:アプリケーションでどちらを使用する必要がありますか?もちろん試すこともできますが、答えも歓迎します。

4

3 に答える 3

4

基本的に、アプリケーションには少なくとも 2 つのキー ハッシュが必要です。これは、1 台のコンピューターだけで作業していることを前提としています。追加のコンピューターの場合は、開発者コンソールでアプリの設定にもう 1 つのキー ハッシュを生成して追加する必要があります。

説明:

アプリケーションをテストしている間、(ADT / SDK と組み合わせて) Eclipse は常に を使用しdebug.keystoreて、アプリをデバイスまたはエミュレーターにプッシュします。アプリを公開するときは、アプリ用に生成したキーストアを使用します (Google Play に公開するため)。

Facebook では、debug.keystore と独自のキーストアの両方にキー ハッシュが必要です。

2 つの異なる方法を使用して異なるキー ハッシュを取得するという懸念に対処するために、Facebook Android SDK を使い始めたときに直面したことがあります。それを回避するために、常に機能し、常に正確な解決策を見つけました。これらの回答の手順に従うことができます (ほとんど同じです)。すぐにキー ハッシュが機能するようになります。

  1. https://stackoverflow.com/a/13283088/450534
  2. https://stackoverflow.com/a/13343529/450534
  3. https://stackoverflow.com/a/10516629/450534 (解決策はこのコメントにあります)

要約すると、次のようになります。

  1. 上記のリンクの手順を使用して、Facebook SDK が正しいキー ハッシュを通知できるようにしてください。
  2. また、どのキー ハッシュを使用するかについては、決定する必要はありません。両方のキー ハッシュを開発者コンソールに追加するので、Facebook は適切なものを自動的に使用します。
  3. キーハッシュをManifestファイルに追加する必要があることを認識していません。おそらく、Facebook SDK v3 の要件である可能性があります。このような場合、テスト中には で作成されたキー ハッシュを使用しdebug.keystore、アプリをリリースする準備ができたら、リリース キーストアを使用して作成されたキー ハッシュに変更します。

これがあなたの質問に対処することを願っています。

編集

Offbeatmammal が既に指摘したように、開発者コンソールに複数のキー ハッシュを追加できます。そのため、複数のキー ハッシュを保存して使用することについて心配する必要はありません。

于 2013-01-18T02:25:53.410 に答える
1

私はいつもkeytoolの署名を使用してきました。良い点は、署名を登録するFacebookフォームが複数の署名をサポートしていることです(これは、複数のアプリを渡す場合、または複数のアプリストアをサポートする必要があり、最終的に異なるハッシュになる場合に便利です)

于 2013-01-18T00:40:05.270 に答える