このアプリにはAndroidキーハッシュが設定されていません。-FacebookSDKでログインします


81

アプリケーションでのFacebookアカウントでのログインに問題があります。FacebookDocを読みました。そして、私はFacebookDocとしてすべてのステップを実行しました。

-アプリでFacebookのACOUNTとログインで初SUCCESSFUL!そして、アプリケーションでログアウトするよりも。Facebookアカウントで再度ログインたい。しかし、動作していません!! そして、私はこのエクセプティトンを取りました!私を助けてください !

例外:このアプリにはAndroidキーハッシュが構成されていません。http:developers.facebook.com/apps/ "APPID"でアプリキーハッシュを構成してください。

最後に; 以前はHashKeyGenarateのコードの一部でした

 try {
        PackageInfo info =     getPackageManager().getPackageInfo("MY PACKAGE NAME",     PackageManager.GET_SIGNATURES);
        for (android.content.pm.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) {
}

問題を解決しました。Facebookで設定するべきだった。手順:

  1. Facebook開発者のページに移動します:https//developers.facebook.com/
  2. アプリのタブを開き、設定をクリックします

  3. 生成されたハッシュキーをHashKeyのフィールドに貼り付けます=まだ持っていない場合は、コードのキーハッシュ部分を取得します

  4. また、シングルサインオンは「はい」になります:シングルサインオン:この設定を有効にします。

私は自分の決意を共有したかった。多分誰かがこの解決策を必要としています。幸運を !


1
ありがとう-あなたは私を助けてくれました、そして私は同じ問題を経験しました+1
サイモン

Facebookは、設定ボタンをクリックして新しいプラットフォームを追加した後、ハッシュを生成する方法について非常に優れたクイックスタートの説明を提供します。Macの場合:keytool -exportcert -alias androiddebugkey -keystore ~/.android/debug.keystore | openssl sha1 -binary | openssl base64Windowsの場合:keytool -exportcert -alias androiddebugkey -keystore %HOMEPATH%\.android\debug.keystore | openssl sha1 -binary | openssl base64
FilipR 2015

この問題をどのように解決しましたか?
andrei 2015

2
代わりに、ソリューションを回答として投稿し、回答としてマークする必要があります。これにより、この質問が未回答として表示されなくなります。
スーフィアン2015

回答:


15

ハッシュキーを生成する必要はありません。アプリからFacebookにアクセスしようとすると、「[ハッシュキー]」が登録または構成されていないというエラーメッセージが表示されます。そのキーをコピーして、Facebook検証用にアプリを登録したdeveloper.facebook.comにアクセスし、キーハッシュの下に含めます。

注意:デバイスごとに、ハッシュキーが異なる場合があります。あなたはそれを新たに含める必要があります。

デフォルトでは、このキーは次のことを行う必要があります。 2jmj7l5rSw0yVb/vlWAYkK/YBwk=

また、すべての前に、Facebookにアプリの詳細を提供する必要があります。また、Facebookの機能を使用している場所のスクリーンショットと、使用している理由を提供する必要があります。彼らはそれを確認する必要があります。


答えてくれてありがとうNielarshi。しかし、私は別の方法で解決しました。
タリクYurtlu

2
@TarıkYurtluそれはなんですか?ハッシュキーを登録しましたが、機能しませんでした。Facebookアプリをアンインストールすると動作します。アプリケーションをリリース用に登録する必要がありますか、それとも開発用に登録できますか?
Amt87 2015年

4
古いスレッドですが...キーは「署名されたapkバージョン」ごとに異なり、デバイスごとに異なりませんか?確かに、それが各デバイス用である場合、誰もそれを使用することはできません。他の人へのヒント:アップロードする署名付きバージョンと開発時に使用するバージョンのハッシュキーは異なります。Facebookで複数のハッシュキーを追加できますが、問題はないはずです。別の署名鍵を使用すると、ハッシュが変更されます。
renevdkooi 2015年

10

リリースキーのハッシュを生成するには、MacまたはWindowsで次のコマンドを実行し、リリースキーのエイリアスとキーストアへのパスを置き換えます。OS Xで、次を実行します。

keytool -exportcert -alias <RELEASE_KEY_ALIAS> -keystore <RELEASE_KEY_PATH> | openssl sha1 -binary | openssl base64

Windowsでは、次を使用します。

keytool -exportcert -alias <RELEASE_KEY_ALIAS> -keystore <RELEASE_KEY_PATH> | openssl sha1 -binary | openssl base64


参照:https//developers.facebook.com/docs/android/getting-started/#create_hash


2

アプリを公開しておらず、デバッグバージョンハッシュを使用したい場合は、次のコマンドを使用してデバッグキーストアから取得できます。

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

この関連するSO投稿の詳細


1

ハッシュキーを取得する簡単な方法があります。

メインの.ktファイルをonCreateメソッドに入力するだけで、次の行が表示されます。

FacebookSdk.sdkInitialize(this)
println("Facebook hash key: ${FacebookSdk.getApplicationSignature(this)}")

次に、結果をFacebook開発者のWebサイトにコピーします。生成された文字列の最後に、結果の等号(=)がない場合があります。その場合は、手動で追加してください。


弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.