페이스북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

+ Recent posts