이 코드 그대로 쓰고있습니다.
안된다는건 아니구요 밑에 html에 있는 모든 값이 오긴 옵니다만
이메일만 undefined로 옵니다. 대체 왜 그런지 모르겠어요 구글링하고 스택플로우를 뒤져봐도 해결책이 없습니다.
앱설정의 문제인가요?
테스트환경은 localhost에서 했습니다.
작동은 되지만 이메일만 안오고있습니다.
<!-- <fb:login-button scope="public_profile,email" onlogin="checkLoginState();">
</fb:login-button> -->
<!-- <div id="response">
</div> -->
<button type="button" class="button facebook" id="loginBtn">페이스북 계정</button>
<div id="access_token"></div>
<div id="user_id"></div>
<div id="name"></div>
<div id="email"></div>
<div id="gender"></div>
<div id="birthday"></div>
<div id="id"></div>
<script>
function getUserData() {
/* FB.api('/me', function(response) {
document.getElementById('response').innerHTML = 'Hello ' + response.name;
console.log(response);
}); */
FB.api('/me?fields=id,email,gender,name,birthday' ,{locale : 'ko_KR'}, function(response) {
console.log(JSON.stringify(response));
$("#name").text("이름 : "+response.name);
$("#email").text("이메일 : "+response.email);
$("#gender").text("성별 : "+response.gender);
$("#birthday").text("생년월일 : "+response.birthday);
$("#id").text("아이디 : "+response.id);
});
}
window.fbAsyncInit = function() {
//SDK loaded, initialize it
FB.init({
appId : '사용자',
cookie : true, // enable cookies to allow the server to access
// the session
xfbml : true, // parse social plugins on this page
version : 'v2.10' // use graph api version 2.8
});
//check user session and refresh it
FB.getLoginStatus(function(response) {
if (response.status === 'connected') {
//user is authorized
//document.getElementById('loginBtn').style.display = 'none';
getUserData();
} else {
//user is not authorized
}
});
};
//load the JavaScript SDK
(function(d, s, id){
var js, fjs = d.getElementsByTagName(s)[0];
if (d.getElementById(id)) {return;}
js = d.createElement(s); js.id = id;
js.src = "//connect.facebook.com/ko_KR/sdk.js";
fjs.parentNode.insertBefore(js, fjs);
}(document, 'script', 'facebook-jssdk'));
//add event listener to login button
document.getElementById('loginBtn').addEventListener('click', function() {
//do the login
FB.login(function(response) {
if (response.authResponse) {
access_token = response.authResponse.accessToken; //get access token
user_id = response.authResponse.userID; //get FB UID
console.log('access_token = '+access_token);
console.log('user_id = '+user_id);
$("#access_token").text("접근 토큰 : "+access_token);
$("#user_id").text("FB UID : "+user_id);
//user just authorized your app
//document.getElementById('loginBtn').style.display = 'none';
getUserData();
}
}, {scope: 'email,user_about_me,public_profile,user_birthday',
return_scopes: true});
}, false);
</script>