Android アプリのキー ハッシュは、保存されているキー ハッシュと一致しません。




facebook-android-sdk (9)

単純な返されたエラーメッセージのハッシュキーを置く:

10-20 22:21:10.752: W/fb4a(:):BlueServiceQueue(5872): com.facebook.http.protocol.ApiException: Key hash VQ3XhZb5_tBH9oGe2WW32DDdNS0 does not match any stored key hashes.

VQ3XhZb5_tBH9oGe2WW32DDdNS0

Facebookデベロッパーの場合、あなたのアプリのキーハッシュ。

この助けを願っています。

Facebook StoreでログインしたPlayストアのアプリケーションを公開しています。 私はEclipseからアプリケーションをデバッグするときに問題はありませんが、実際にはFacebookが私に許可を求めた後に次のエラーが表示されます。 私は、このコマンドを使用してkeytoolで生成されたキーハッシュをdevelopers.facebook.comの自分のアプリケーションページに追加しました:

keytool -exportcert -alias diego -keystore "C:¥Users¥Diego¥Desktop¥CeluChat.KeyStore" | "C:\ openssl \ bin \ openssl.exe" sha1 -binary | "C:\ openssl \ bin \ openssl.exe" base64

CeluChat.KeyStoreは署名されたアプリケーションをエクスポートしたときに使用したキーストアであり、keytoolがパスワードを私に知らせるとエクスポートされたときに同じものが入力されました。

ただし、Playストアからダウンロードされた制作上のエラーは次のとおりです。

10-20 22:21:10.752:W / fb4a(:):BlueServiceQueue(5872):com.facebook.http.protocol.ApiException:キーハッシュVQ3XhZb5_tBH9oGe2WW32DDdNS0が格納されたキーハッシュと一致しません。

例外にあるキーハッシュは、keytoolで生成されたキーハッシュとは異なります。 とにかく私はFacebook上にKey Hashを追加しましたが、まだ動作していません。


Answer #1

シングルサインオンを有効にするシングルサインオンを「はい」に設定することで、アプリケーションのシングルサインオンを有効にします。 ポイントナンバーを確認してください。 9 on https://developers.facebook.com/docs/facebook-login/android



Answer #3

まあ、Windowsを使用している場合は、このコマンドをcmdで使用します。

C:\ Program Files \ Java \ jdk1.8.0_25 \ binに移動します。

keytool -exportcert -alias androiddebugkey -keystore ~/.android/debug.keystore | "C:\openssl\bin\openssl.exe" sha1 -binary | "C:\openssl\bin\openssl.exe" base64

Windowsでopenssl-0.9.8e_X64.zipを使用する必要がある場合、 openssl-0.9.8e_X64.zipを使用することはできません。

これが解決策です。


Answer #4

よく、実際には最高の簡単な方法はこれのようなものです。 あなたの電話画面でその問題が表示された場合。 アンドロイドスタジオのLOGCATでこの問題が発生するはずです。 それはこれを好きになるだろう

01-26 14:58:22.885 14851-19534/? W/fb4a.BlueServiceQueue: Exception during service
                                                          X.1xO: [code] 404 [message]: Key hash 961x8mIbWmA7TRRpbk...= does not match any stored key hashes. (404) [extra]: null
                                                              at X.0fG.D(:240135)
                                                              at X.0k8.F(:255078)
                                                              at X.3gX.EUB(:738232)
                                                              at X.0fo.handleResponse(:242693)
                                                              at X.0k5.run(:254998)
                                                              at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:428)
                                                              at X.0NH.run(:187661)
                                                              at X.0JQ.run(:49671)
                                                              at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1133)
                                                              at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:607)
                                                              at X.0NM.run(:187873)
                                                              at java.lang.Thread.run(Thread.java:761)

logcatからこのハッシュキーをコピーします。これはプライベート(...)にして、facebookの開発者ページに貼り付けています。 すぐにあなたの問題を解決します。 また、Googleからダウンロードした元のハッシュキーとは異なる、公開されたAPKのハッシュキーを必ず確認してください。


Answer #5

Facebookはいくつかの+、 - 、/と_

ですから、_を+、 - および/またはハムキーを追加してみてください。

うまくいけばうまくいくはずです。


Answer #6

それは良い質問です。 それについては2つの方法があります。 私たちは通常、アンドロイド用のFacebook SDKを統合する際に、Facebook のデベロッパーサイトの指示に従います。

しかし、いったんアプリが遊び場に出ると、まだ保留中の手続きを忘れる傾向があります。 そして、同じエラーで終わります:

05-13 14:45:43.882: W/fb4a(:<default>):BlueServiceQueue(25454): Exception during service
05-13 14:45:43.882: W/fb4a(:<default>):BlueServiceQueue(25454): com.facebook.http.protocol.ApiException: Key hash XXXXXXXXXXXXXX does not match any stored key hashes.

Jusはこのためのチェックリストを得ました:

1)デバッグキーを使用して、アプリケーションを開発中

Facebookの開発者サイトはこれに非常に役立ちます。 「はじめに」ページにあるコードをコマンドプロンプトに貼り付けてコピーしてください。 viz:

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

そのパスワードはアンドロイドで、それに続くデバッグキーが手に入ります。

2)アプリケーションに署名した後、デバッグキーを生成する

アプリケーションをGoogle Playストアにアップロードする準備ができたら、キーストアから値が生成されたキーを使用してアプリケーションに署名する必要があります。 彼の答えはSatheeshによってうまく説明されています 。 を使用して:

keytool -exportcert -alias <Alias Name here> -keystore <Path to keystore> | openssl sha1 -binary | openssl base64

これはデバッグキーとは異なるキーを提供します。


Answer #7

サンプルアプリケーションのキー入力ページでバグを発見しました:Enterキーを押すことなくアプリからハッシュキーを貼り付けてから「変更を保存」ボタンをクリックすると、新しく入力されたコードは消えますが、 ! " 応答メッセージ。 これは真実ではありません。それは救いませんでした。 ハッシュキーを貼り付けた後にEnterキーを押し、「Save Changes」を押す必要があります。

末尾の文字を含むキーを保存しました。 それはうまくいった。


Answer #8

私はこれを使って私のアプリを走らせた時の鍵を見せた。 私の場合は、keytoolコマンドから誤ったキーハッシュを取得していました。 間違ったパスワード(故意に)を入力すると、エラーを受け取る代わりに誤ったキーが生成されることに注意してください。 これを使用して正しいハッシュを取得し、エラー・ログ内のハッシュと一致するかどうかを確認します

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) {
}

また、何らかの理由で上記の方法が機能しない場合。 このAPKを使用して、正しいキーハッシュを生成してみてください。 取得する証明書(デバッグまたはリリース)を使用して署名する必要があることに注意してください。 テストデバイスにインストールして実行します。

http://www.easyfacebookandroidsdk.com/download/keyhash.zip







facebook-android-sdk