0
나는 facebook android sdk에서 일하고 있습니다. 다음 코드를 사용하여 해시 키를 가져오고 있습니다. 이제 오류가 발생합니다. Facebook에 로그인하면 세션 상태 CLOSED_LOGIN_FAILED입니다.세션 상태 CLOSED_LOGIN_FAILED
참조 : if(session.isOpen()), facebook login on android always returning false
try {
PackageInfo info = getPackageManager().getPackageInfo(
"your.root.package",
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) {
}
키 해시가 변경되는 유일한 방법은 서명 키가 변경되는 것입니다. 그리고 이것은 결코 그것 자체에 일어나지 않습니다. 만약 당신이 여전히'debug.keystore'를 사용하여 USB를 통해 개발 및 전개하고 있다면 그것을 삭제하고 새로운 것을 재 작성하는 것이 제가 생각할 수있는 유일한 시나리오입니다. 그리고 불행히도 키 해시가 변경 될 경우 새 키 해시를 Facebook 개발자 콘솔에서 ** 수동으로 ** 업데이트해야합니다. 플랫폼에 관계없이 앱이 FB Dev 콘솔의 세부 사항을 편집/수정할 수있게 해주는 기능은 없습니다 (좋은 이유로도 _). –
실제 문제가 발생할 때마다 세션 상태가 항상 false가됩니다. http://stackoverflow.com/questions/16176832/ifsession-isopen-facebook-login-on-android-always-returning-false –
동일한 문제가 발생하는 경우 그 질문에 하나로서, 당신이 사용하는 코드는 그것을 고칠 것이다. 그렇게 말하면서, 나의 이전의 의견은 여전히 유효하다. 그러나 페이스 북의 해시 키가 자동으로 바뀌면 내 앱이 작동하지 않습니다. : 앞에서 언급했듯이 ** 자신의 정보가 ** 변경되지 않습니다. _hash 키는 Facebook에서 변경되거나 안드로이드 app_에서 해시 키를 프로그래밍 방식으로 설정하는 다른 방법입니다. ** ** 할 수 없습니다. Facebook 개발자 콘솔에서 새 해시 키를 수동으로 업데이트해야합니다. –