Facebookネイティブアプリケーションがインストールされている場合、assessessionValid()がNOを返します

StackOverflow https://stackoverflow.com/questions/8805843

質問

SSOには、Facebook SDK for Androidを使用して問題があります。問題が発生します それだけ ネイティブのFacebookアプリケーションがインストールされているとき。インストールされていない場合、すべてが正常に機能します。

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

facebook.isSessionValid(); // returns true

しかし、ネイティブアプリケーションがインストールされている場合、 facebook.isSessionValid() まだ戻ってきます false 私が電話したという事実にもかかわらず authorize 方法。

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

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

何が起こっている?

役に立ちましたか?

解決

解決した! :)

これがあなたにも役立つことを願っています。問題は、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/).

生成されたキーはログキャットにあり、古いキーをこれに置き換えます。

解決策に感謝します:http://p-xr.com/implementing-facebook-into-your-app-invalid-with-keytool/

他のヒント

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

あなたはこのようなログを行うことができます:

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

したがって、AndORID Base64を使用できます

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

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top