티스토리 뷰
이번에 진행하는 프로젝트에서 페이스북 로그인 api를 연동해오는데, scope에 email을 추가해줬음에도 불구하고, id와 name만 불러오는 문제가 있었다.
기존에 테스트를 진행한 내 페이스북 계정이 email없이 휴대폰 번호로만 가입해서 그런건줄 알고 일단은 카카오톡 로그인으로 넘어가고 카카오톡 로그인 연동을 완성하고 다시 이메일로 아이디를 사용하는 페이스북 계정으로 로그인해봤는데, 여전히 email을 못 불러왔다.
scope에도 하단처럼 email을 추가해줬고,
<fb:login-button scope="public_profile,email,user_birthday,user_friends" onlogin="checkLoginState();"></fb:login-button> |
심지어 최초로 페이스북 연동시에 권한설정에 email도 들어있던 상태.
근데 response값에는 id와 name만 존재 ㅜㅜ
구글링 해가며 스택오버플로우를 뒤져봤지만 초반엔 못찾았다..
그러다가 결국 스택오버플로우에서 답을 발견했다 (역시!!)
현재(2017.3.24 기준) 페이스북 개발자 페이지에 나와있는 javascript 예제 코드를 보면 하단과 같은 부분이 있다. 여기서 이 부분(코드에서 핑크색)을 추가해주면 email을 불러올 수 있다.
if (response.status === 'connected') { // Logged into your app and Facebook. testAPI(); }
...중략...
function testAPI() { console.log('Welcome! Fetching your information.... '); FB.api('/me', {fields: 'email'}, function(response) { console.log('Successful login for: ' + response.name); document.getElementById('status').innerHTML = 'Thanks for logging in, ' + response.name + '!'; }); }
기존에는 id랑 name만 불러왔었다고 했는데, 저렇게만 선언해주면 이제는 id랑 email만 불러옴
더 다양한 정보를 갖고오고싶다면 이렇게 추가해주면됨
function testAPI() { console.log('Welcome! Fetching your information.... '); FB.api('/me', {fields: 'email,name'}, function(response) { console.log('Successful login for: ' + response.name); document.getElementById('status').innerHTML = 'Thanks for logging in, ' + response.name + '!'; }); }
'Web' 카테고리의 다른 글
카페24에 spring MVC (+restful url) 호스팅하기 (0) | 2017.04.19 |
---|---|
json 형태의 [object Object] 출력하기 (3) | 2017.03.28 |
spring3 MVC 인코딩 관련 (한글깨짐, 한글이 외계어로 나오는 문제 해결) (0) | 2017.03.16 |
프론트 - select box 직접입력란 생기게하기 (0) | 2017.02.21 |
jsp 파일 모듈화 (0) | 2017.02.09 |