4

Android アプリからキー ハッシュを取得しようとしていました。Facebook SDK 3.0 では、次のコードが提供されました。

keytool -exportcert -alias androiddebugkey -keystore %HOMEPATH%\.android\debug.keystore | openssl sha1 -binary | openssl base64

これを実行すると、最初に次のように表示されbinary:no errorます。次に、として入力するパスワードを要求しますandroid。Enterキーを押すと、パスコードが必要な場所に空白が返されます。

ここに記載されているソリューションを使用しました; これによりキーハッシュが得られましたが、それを使用するとセッションが開かれません。

私のJavaキーツールは次の場所に保存されています:

C:\Program Files\Java\jre7\bin

OpenSSL は次の場所に保存されます。

F:\openssl\bin

Windows の MD で実行すると、正しいファイル パスが表示されます。

これを理解するのを手伝ってください!

4

2 に答える 2

0

Windows は、keytool を取得するのが常に少し厄介で難しいため、別の方法をお勧めします。onCreateアプリのメソッドで次のコードを実行します。

   try {
        PackageInfo info = getPackageManager().getPackageInfo(
            "COM.YOUR.PACKAGE.NAME", 
            PackageManager.GET_SIGNATURES);
        for (Signature signature : info.signatures) {
            MessageDigest md = MessageDigest.getInstance("SHA");
            md.update(signature.toByteArray());
            Log.d("My Keyhash", Base64.encodeToString(md.digest(), Base64.DEFAULT));
        }
    } catch (Exception e) {
        Log.e("My Keyhash", e.toString());
    } 

logcat のログ出力を観察して、キーハッシュを取得します。上記のパッケージ名を自分のものに置き換えてください。

編集:

キーハッシュは正しくアップロードされていますが、セッションはまだ開かれていません... Facebookにログオンしているときに、最初にアプリを介して許可を要求し、受け入れた後、「com.facebook.facebookexception: Session Provided to」というポップアップが表示されます未開封状態のリクエスト」

Fragment/Activity に次のコードがあることを確認してください。

@Override
public void onActivityResult(int requestCode, int resultCode, Intent data) {
    super.onActivityResult(requestCode, resultCode, data);
    uiHelper.onActivityResult(requestCode, resultCode, data);
}
于 2013-01-01T19:56:48.720 に答える
0

パスワードを間違えた可能性があります。

ここで私の答えを見てください。

それが役立つことを願っています

于 2013-07-18T20:46:49.433 に答える