Android AppにFacebookのログインをしばらく実装しました。Android Facebook Login APIは、FacebookアプリケーションがインストールされているときにonCancel()に直接アクセスします。
SDKのバージョンを最新版(4.22.0)にアップデートしたときに問題が発生しました。この時点で、Facebookログインボタンをクリックするだけで、簡単にログインしてから何もしなくなります。ログから、FacebookCallbackのonCancel()が呼び出されているのがわかりますが、それだけです。
Facebookアプリをアンインストールするとすべてうまく動作します。私はWebビューのログインを通過し、次に処理を進めることができます(onSuccess()が呼び出されます)。
以前使用していたSDKのバージョンに戻してみましたが、運はありません。私は自分のKeyHashesがFacebook Developer Dashboardにあるもの(デバッグとリリースの両方)にマッチしていることを確認しました。私のApp IDも一致します。
私はLoginManagerを使ってログアウトを強制しているので、ログインを試みる前にログアウトしていることを知っています。
非常に奇妙です。私は私のKeyHashを生成するには、次のコードを使用:
try {
PackageInfo info = getPackageManager().getPackageInfo(
"***.*****.************",
PackageManager.GET_SIGNATURES);
for (Signature signature : info.signatures) {
MessageDigest md = MessageDigest.getInstance("SHA");
md.update(signature.toByteArray());
Log.d("KeyHash:", Base64.encodeToString(md.digest(), Base64.DEFAULT));
}
} catch (PackageManager.NameNotFoundException e) {
} catch (NoSuchAlgorithmException e) {
}