페이스북SDK는 비동기 방식이다
FB.login 로그인 메서드를 사용할때
FB.getLoginStatus를 먼저 체크하고 FB.login 을 사용하면 익스플로러에서는 반응을 못한다.(크롬에선 가능, 사파리 되따가안됬따가)
그래서
// 로그인만
FB.login(function(response) {
// 페북 로그인 상태 확인 connected. 사용자가 Facebook에 로그인하고 앱에 로그인
// not_authorized. 사용자가 Facebook에 로그인했지만 앱에 로그인 안함
console.log(response);
//statusChangeCallback(response);
var data = {
accessToken : response.authResponse.accessToken,
user_id : response.authResponse.userID,
}
fn_login(data);
if (response.status != 'connected') {
return ;
}
}, {scope: 'public_profile'});
로그인만 사용하던가 아니면 로그인후 getLoginStatus 를 체크 하면된다.
// 로그인 후 상태 체크
// 페북 로그인
FB.login(function(response) {
// 페북 로그인 상태 확인 connected. 사용자가 Facebook에 로그인하고 앱에 로그인
// not_authorized. 사용자가 Facebook에 로그인했지만 앱에 로그인 안함
FB.getLoginStatus(function(response) {
// 콜백 connected 이면 공유 팝업 실행
// statusChangeCallback(response, sharePopup(href, hp_id));
console.log("FB.login: " + response);
console.log(hp_id);
if (response.status != 'connected') {
return false;
}
});
}, {scope: 'public_profile'});
etc..
//페북 로그인 상태 콜백
function statusChangeCallback(response) {
if (response.status === 'connected') {
} else if (response.status === 'not_authorized') {
alert("로그인해야 이용가능한 기능입니다.");
} else {
alert("로그인해야 이용가능한 기능입니다.");
}
}
//공유하기
FB.ui(
{
method:'share',
href : url,
},function(response) {
//공유결과 리턴
console.log(response)
if(response === null || response == undefined) {
console.log('공유안함');
} else {
console.log('공유완료');
}
});
'Programming > javascript' 카테고리의 다른 글
IOS safari 세션 문제 (0) | 2017.01.25 |
---|---|
[javascript] 엘리먼트 사이즈 구하기 (0) | 2017.01.10 |
[javascript] 웹 브라우저, 모바일 디바이스 구분하기 (0) | 2016.11.04 |
카카오 SDK (0) | 2016.08.19 |
동영상 video tag (0) | 2016.08.19 |