1

Facebook SDKforAndroidを使用したSSOに問題があります。この問題は、ネイティブFacebookアプリケーションがインストールされている場合にのみ発生します。インストールされていない場合、特に次のようにすべてが正常に機能します。

Facebook facebook = new Facebook(APP_ID);
facebook.authorize(mActivity, , new DialogListener() {
   ...
});

facebook.isSessionValid(); // returns true

しかし、ネイティブアプリケーションをインストールすると、メソッドを呼び出したにもかかわらず、facebook.isSessionValid()まだ戻ります。falseauthorize

を使用してデバッグ証明書から生成されたハッシュキーを使用して、ネイティブのAndroidベースのFacebookアプリケーションを作成したことを追加する必要がありますkeytool

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

何が起こっている?

4

2 に答える 2

7

解決しました!:)

これがあなたにも役立つことを願っています。問題は、Windowsが無効なキーを生成することです。

アプリでこれを実行します。

try {
   PackageInfo info = getPackageManager().getPackageInfo("**YOURPACKAGENAME**", PackageManager.GET_SIGNATURES);
   for (Signature signature : info.signatures) {
        MessageDigest md = MessageDigest.getInstance("SHA");
        md.update(signature.toByteArray());
        Log.i("PXR", Base64.encodeBytes(md.digest()));
   }
}
catch (NameNotFoundException e) {}
catch (NoSuchAlgorithmException e) {}

Base64( http://iharder.sourceforge.net/current/java/base64/ )を入手することを忘れないでください。

生成されたキーはlogcatにあり、古いキーをこれに置き換えます。

ソリューションのおかげで:http: //p-xr.com/implementing-facebook-into-your-app-invalid-key-with-keytool/

于 2012-01-31T14:18:34.640 に答える
0

リオールが書いたものに加えて

次のようにログを作成できます。

Log.d("KeyHash:", Base64.encodeToString(md.digest(), Base64.DEFAULT));

AndoridBase64を使用できるように

ref:無効なキーハッシュのトラブルシューティング

于 2013-08-13T13:24:48.840 に答える