チュートリアル「 Facebook ログインを使用する」に従ってデモを作成しました。
このコードを MainFragment に設定しました。
LoginButton authButton = (LoginButton) view.findViewById(R.id.authButton);
authButton.setFragment(this);
authButton.setLoginBehavior(SessionLoginBehavior.SUPPRESS_SSO);
authButton.setReadPermissions(Arrays.asList("user_likes", "user_status"));
2 番目のアカウントでログインするとエラーが発生しました。以前、別のアカウントで正常にログインしたということです。次に、ログアウトし、2 つ目のアカウントでログインしようとしました。
「エラーが発生しました。後でもう一度やり直してください」というメッセージを示すエラー ダイアログが表示され、タイトルは「エラー」で、右側に「OK」ボタンが表示されました。
以下のコードを追加してエラーを確認しようとしました。
authButton.setOnErrorListener(new OnErrorListener() {
@Override
public void onError(FacebookException error) {
Log.e("test", "error: "+error.getMessage());
}
});
それはショー:
error: kError 1349040: Invalid Application ID: The provided Application ID is invalid.
しかし、以前にそのアカウントでログインしようとすると、再び成功しました。
このエラーの前に、次のエラーが発生しました。
remote_app_id does not match stored id
「 Facebook SDK for Android を使ってみる」が推奨するように、設定のキーハッシュを変更しました。コードを追加します。
// Add code to print out the key hash
try {
PackageInfo info = getPackageManager().getPackageInfo(
"com.facebook.samples.hellofacebook",
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 (NameNotFoundException e) {
} catch (NoSuchAlgorithmException e) {
}
ログインに成功しました。
また、リリース キーを使用して apk に署名しようとしましたが、結果は同じです。1 つのアカウントではできますが、別のアカウントではできません。
さて、最近、再試行しました. エラーは消えました. 左上の削除ボタンだけで何もない白いダイアログのみを表示します.
注: Facebook SDK for Android V3.01 を使用しています。
【解決した問題】
2 つの要因がこの問題を引き起こしました。
まず、Openssl ユーティリティが間違っています。次に、Facebook ログインの使用で推奨されているドキュメントからダウンロードします。
第二に、サンドボックスはデフォルトでチェックされています。Anton Roy が回答で言ったように、ダッシュボードでサンドボックス モードのチェックを外しました。