15

確認が欲しいだけです。

私はWindowsで開発しています

Facebook をアプリに統合しようとしていますが、SDK のドキュメントには「署名をエクスポートする」必要があると書かれています。

ここから: http://developers.facebook.com/docs/guides/mobile/#android

したがって、次のコマンドを実行すると表示されます。

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

まず、openssl をダウンロードする必要がありました: OpenSSL

上記のコマンドは、次のように変換する必要があると思います。

"C:\path\to\java\keytool" -exportcert -alias your_alias -keystore "C:\path\to\your\keystore\keystore.name" | "C:\path\to\openssl_install\bin\openssl" sha1 -binary |"C:\path\to\openssl_install\bin\openssl" base64
  • 最新の Java インストール フォルダにインストールされている keytool が必要ですか?
  • エイリアスを、Eclipse での通常の APK 作成に使用するエイリアスの名前にしたいですか?
  • Android アプリをエクスポートするときにキーストアを使用したいですか?
  • openssl をインストールしたばかりにしたい

したがって、これを行うと、パスワードを要求されます: (入力中にパスワードが表示されます)

正しいパスワードを入力すると、

「zR2tey1h9kqPRSW/yEYEr0ruswyD=」(公開用に変更)

ただし、間違ったパスワードを入力すると、次の形式のコードが返されます

「ga0RGNYHvTR5d3SVDEfpQQAPGJ1=」?

ええ、私が正しいことをしていることの確認を探していました。これは期待される出力です

4

3 に答える 3

12

ハッシュを取得する最良の方法は、次のコードを実行することです。

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));
                    Log.e("hash key", something);
        } 
        }
        catch (NameNotFoundException e1) {
            // TODO Auto-generated catch block
            Log.e("name not found", e1.toString());
        }

             catch (NoSuchAlgorithmException e) {
                // TODO Auto-generated catch block
                 Log.e("no such an algorithm", e.toString());
            }
             catch (Exception e){
                 Log.e("exception", e.toString());
             }

Windows cmd、git bash、または cygwing ターミナルでハッシュを抽出すると、3 つのツールで異なる結果が得られます。

最も正確なのは上記のコードです

于 2011-06-26T14:51:11.343 に答える
1

はい、あなたは正しい方法でそれをやっていると思います.私もこのコマンドを実行し、このハッシュを私のfbアプリに入れ、正しく動作します.

于 2011-06-26T15:32:38.103 に答える