2015-10-26 27 views
11

を生成し、私は、ヘルプページを1としてFacebook developers SDK helpkeytoolは32文字長の鍵ハッシュの代わりに、28

で語ったようアンドロイド

.\keytool.exe -exportcert -alias app_android -keystore release.keystore | openssl sha1 -binary | openssl base64 

用Facebookアプリコンソールのキーハッシュを生成するには、次のコマンドを使用していますし、開発者コンソールでも、キーハッシュは28文字でなければなりませんが、キーツールは32文字のキーを生成しています。

Javaバージョン:jdk1.8.0_31 OS:Android向けのWindows 7

の生成。提案を1として

EDIT

Shreyash-mashru @から、私は、コマンドラインツールが生成している理由しかし、誰かがまだ私を助けることができるかどうか理解してkeyhash

try { 
     PackageInfo info = getPackageManager().getPackageInfo(
       "my.package.name", 
       PackageManager.GET_SIGNATURES); 
     for (Signature signature : info.signatures) { 
      MessageDigest md = MessageDigest.getInstance("SHA"); 
      md.update(signature.toByteArray()); 
      Log.e("KeyHash:", "++++++++++++++++++++++++++++++++++++++" + Base64.encodeToString(md.digest(), Base64.DEFAULT)); 
     } 
    } catch (PackageManager.NameNotFoundException e) { 
     Log.e("KeyHash:", "++++++++++++++++++++++++++++++++++++++" + e.toString()); 

    } catch (NoSuchAlgorithmException e) { 
     Log.e("KeyHash:", "++++++++++++++++++++++++++++++++++++++" + e.toString()); 
    } 

を取得するには、次のコードを使用28の代わりに32文字の長いキーハッシュ...

+1

提案。あなたが投稿した上のリンクから見つけることができるその方法を使いやすく、ログにハッシュを入れることができます。それからあなたのFacebookブックアプリにコピーして貼り付けてください。[そのページのリンク](https://developers.facebook。com/docs/android/getting-started#troubleshooting) –

+0

ありがとう@shreyashmashruが試みます。しかし、keytoolが28ではなく32の文字を生成する理由は何ですか? – Jalpesh

答えて

29

私はこのためにWindows powershellを使用していましたが、32文字のキーを生成し続けました。私が普通の古いcmdに切り替えると、期待どおりに動作しました。

+0

これは面白いです...私もpowershellを使っていました。いつか私がいつの間にか窓口に戻ってくるとき、これを間違いなくチェックするだろう。 – Jalpesh

+0

私と同じですが、それは長さ32文字を生成していませんでしたが、それはFacebookによって無効であることを示していました(gvingエラー:そのような最後に=する必要があります)、cmdを使用して完全に働いた – Luckyy

+0

まあこのソリューションは、 。 – Jalpesh

0
.\keytool.exe -exportcert -alias app_android -keystore release.keystore | openssl sha1 -binary | openssl base64 

これは私にとってうまくいきます。もう一回やってみよう。

+0

ハッシュ28文字は長いですか?環境とJavaバージョンについて言及できますか? – Jalpesh

+0

はい、Java(TM)SEランタイム環境(build 1.7.0_80-b15) –

0

私は同じ問題を抱えていました。既存のバージョンのopenSSL(64ビット)を使用することとは何か関係がありました。私は32ビット版from hereをダウンロードし、それをc:\ openSSLにインストールしました。コマンドはこのバージョンのSSLを指しています。私は28文字のハッシュを持っています。

のkeytool -exportcert -alias androiddebugkey -keystore "C:\ Users \ユーザーUSERNAME.android \ debug.keystore" | "C:\ OpenSSLのビンの\ opensslの\" SHA1の-binary | "C:\ OpenSSLのビンの\ opensslの\" base64で

1

うまくいけば、この答えは手遅れではありません(私は質問が年以上古いです知っているが、私はこの問題に関するGoogle検索の最初の結果からここに到着しました)。

キャリッジリターンと最後に改行が追加されているため、生成されるハッシュは32文字です。これを修正するには、次のいずれかを実行します。

ハッシュの最後の5文字を​​削除し、最後に「=」を追加します。例えば: "1234567890abcdefghijklmnopqrstuv"(32文字) - > "1234567890abcdefghijklmnopqは="(28文字)

OR

ポップは、JavaScriptコンソールを開き、使用:

btoa(atob(hashString).slice(0, -2)) 

"hashString"あなたの32文字のハッシュです。

関連する問題