물에 살고싶은 개발자

[FaceBook] 페북 로그인 연동 시 문제 두가지 본문

Android

[FaceBook] 페북 로그인 연동 시 문제 두가지

돼지사랑 2017. 8. 23. 19:58

1. 해쉬키 문제

보통 처음 페이스북연동을 따라하다보면 openssl이 말썽을 부릴것이다(jdk나 이런게 말썽을 부린다면 자바설치,환경변수등록부터 다시 하시길)

어떤 말썽이냐면,


'openssl'은(는) 내부 또는 외부 명령, 실행할 수 있는 프로그램, 또는

배치 파일이 아닙니다.


안드로이드 스튜디오 터미널에서 이런식의 에러메시지를 뱉어낸다

보통 갖다쓰라고 하는 코드는

keytool -exportcert -alias androiddebugkey -keystore %HOMEPATH%\.android\debug.keystore | openssl sha1 -binary | openssl base64

이렇게 경로가 없을것인데(윈도우즈 기준)

openssl 앞에 경로를 붙여주면 보통은 해결된다.

keytool -exportcert -alias androiddebugkey -keystore %HOMEPATH%\.android\debug.keystore | [openssl경로]\bin\openssl sha1 -binary | [openssl경로]\bin\op
enssl base64

이렇게 바꿔서 쳐주면 보~~~통은 해시키가 딸려나온다.



2.로그인 연동 시 오류 메시지

페북 로그인 연동을 하면 처음에만 아무 문제없이 잘 작동하고 두번째부터는 

Invalid key hash. The key hash 해쉬키 does not match any stored key hashes. Configure your app key hashes at https://developers.facebook.com/apps/앱ID/

이런 오류메시지를 보여주면서 안되게 된다.


일단 페북 로그인연동 구현 코드에 가서 페북 로그인버튼 콜백매니저에 오버라이드한 3가지의 메서드 중에

@Override
public void onError(FacebookException error) {
Log.e("페북에러" , error.toString());
}

이처럼 onError에 에러메시지를 로그로 뽑아주자

안그러면 앱에서만 에러화면이 보이고 로그엔 아무것도 안찍힌다.


이렇게 하고나면 위에 빨간글씨처럼 해쉬키가 나오고 그 뒤엔 자신의 페북 앱페이지가 나오는데

설정->기본설정에 가서 (혹시 플랫폼 추가 안했으면 안드로이드 추가하고) 키 해시에 에러메시지로 나온 해시키를 넣어주면 된다.


Comments