2012-04-05 2 views
1

Facebook Facebook SDK를 사용하여 Facebook 페이지 응용 프로그램을 개발하고 있습니다. 방문 페이지에 버튼이 있습니다. 클릭하면 사용자가 앱을 설치하지 않은 경우 설치하라는 메시지가 표시됩니다.Facebook SDK : FB.Login 팝업 상자의 대안

코드는 다음과 같습니다 : 기본 FB.Login으로

<script type="text/javascript"> 
function installApp() { 
    FB.login(function(response) { 
     if (response.authResponse) { 
      var accessToken = response.authResponse.accessToken; 
     } 
     if (response.status === 'connected') { 
      window.location = 'share.php'; 
     } else { 
      alert('Please install app first'); 
     } 
    }, {scope:'friends_likes,email'}); 
} 
</script> 

허가를 요청하는 팝업 상자가 발생합니다. 팝업 상자를 피할 수있는 다른 방법이 있습니까? 나는 다른 페이스 북의 애플 리케이션이 성공적으로 이것을 달성하는 것을 보았다. 그러나 나는 그들이 어떻게했는지 전혀 모른다.

답변

1

Authentication documentation을 보았습니까?

거의 모든 옵션을 사용할 수 있습니다. 즉 :

  1. Client-Side Authentication
  2. Server-Side Authentication
  3. Authentication within a Page Tab

당신은 아마 그 방법 중 하나를 사용할 수 있지만, 셋째는 것이 가장 적합합니다.

function fbLogin() { 
    var oauth_url = 'https://www.facebook.com/dialog/oauth/'; 
    oauth_url += '?client_id=APP_ID_HERE'; 
    oauth_url += '&redirect_uri=' + encodeURIComponent('https://apps.facebook.com/APP_NAMESPACE/'); 
    oauth_url += '&scope=email' 
    window.top.location = oauth_url; 
} 

은 다음 onclick 이벤트와 사용자 정의 버튼으로 호출 할 수 있습니다 당신은 이것에 대한 그래프 API 호출로 자바 스크립트 API를 사용할 수 있습니다

+3

나는 어떻게 사람들을 싫어 답변을 수락하고이 답변이 어떻게 정확하게 도움이되었는지 게시하지 마십시오. : \ – dimitarvp

2

:

<a href="#" onclick="return fbLogin();">Custom Login</a> 
+0

이 방법은 여전히 ​​2017 년에 훌륭하게 작동합니다 !! 팝업을 피하십시오! redirect_uri가 올바른지 확인하십시오. 앱의 도메인 목록에 추가해야 할 수도 있습니다. –