2012-03-24 2 views
1

나는 PHP를 사용하여 내 웹 사이트에 php SDK를 사용하여 연결합니다. 인증을 위해 페이스 북으로 리다이렉트하는 대신에 OAuth Dialog ..를 열고 싶습니다. 인증을 위해 다음 URL을 사용 .. 그것은 페이스 북에 리디렉션하지만 열리지 않고 OAuth를 Dailog ..페이스 북에서 Open Auth Dialog php SDK

https://www.facebook.com/dialog/oauth?client_id=XXXXXXXXXXX&redirect_uri=http%3A%2F%2Fwww.setsail2nz.com.au%2Fmicrosite%2Ffbalbums.php%3Fpid%3D1&state=ad89eddd7f71e7337785f604710c97e8&scope=user_photos%2Cpublish_stream%2Cmanage_friendlists%2Cemail&display=popup

어떤 아이디어가?

편집 : 나는 페이스 북의 JS SDK와 함께하는 방법을 알고 ..하지만 거기에 PHP로 할 수있는 방법은 무엇입니까?

편집 2 : 좋아 지금 JS SDK를 사용하여 메신저하지만 여전히 대화 상자를 열 수 없습니다 .. 여기가 내 코드

<div id="fb-root"></div> 
<script> 
    window.fbAsyncInit = function() { 
    FB.init({ 
    appId  : 'XXXXXXXXXX', // App ID 
    status  : true, // check login status 
    cookie  : true, // enable cookies to allow the server to access the session 
    xfbml  : true, // parse XFBML 
    oauth : true // enables OAuth 2.0 
    }); 
    }; 

    // Load the SDK Asynchronously 
    (function(d){ 
    var js, id = 'facebook-jssdk', ref = d.getElementsByTagName('script')[0]; 
    if (d.getElementById(id)) {return;} 
    js = d.createElement('script'); js.id = id; js.async = true; 
    js.src = "//connect.facebook.net/en_US/all.js"; 
    ref.parentNode.insertBefore(js, ref); 
    }(document)); 

    function fblogin() 
    { 
    FB.login(function(response) 
    { 
     alert(response); 

    },{perms: "user_photos,publish_stream,manage_friendlists,email"}); 
    } 
</script> 
+0

JS-SDK를 사용할 수 있습니다. –

+0

그래, 내가 자바 스크립트에 대해 알고 ..하지만 거기 PHP는 SDD 함께 할 수있는 방법이 무엇입니까? – casper123

답변

0

는 PHP의 SDK와 대화 응답을 검출에 대한 귀하의 질문에 대답하려면 lem은 getloginURL이 성공 또는 오류시 사용하는 URL 매개 변수 하나만 사용한다는 것입니다. 사용자가 권한 대화 상자에서 확인 또는 취소를 클릭했는지 감지해야 사전 권한 대화 상자 페이지로 리디렉션하거나 올바른 로그인 된 콘텐츠를 표시 할 수있었습니다.

오류 매개 변수에 'error_reason'이 있는지 확인하고 오류가 'user_denied'인지 확인한 다음 적절한 조치를 취했습니다. 더 좋은 방법이있을 수도 있지만 이것은 나를 위해 일했습니다.

<?php 
    //Facebook Authentication 
    $user = $facebook->getUser(); 

    //Get Login URL 
    $loginUrl = $facebook->getLoginUrl(); 

    //User is logged in 
    if ($user) { 
     try { 
     // Proceed knowing you have a logged in user who's authenticated. 
     $user_profile = $facebook->api('/me'); 
     } catch (FacebookApiException $e) { 
     error_log($e); 
     $user = null; 
     } 
    } 

    //User is not logged in 
    if (!$user) { 
     //Check if error_reason was generated and if the user denied login 
     if (isset($_REQUEST['error_reason']) && ($_REQUEST['error_reason']=='user_denied')) { 
      //user cancelled permissions dialog thus not logged in to app, redirect elsewhere 
      echo "<script type='text/javascript'>top.location.href = 'YOUR REDIRECT URL';</script>"; 
      exit; 
     } else { 
      //user not logged in so initiate permissions dialog 
      echo "<script type='text/javascript'>top.location.href = '$loginUrl';</script>"; 
      exit; 
     } 
    } 

    //get user basic description 
    $userInfo = $facebook->api("/$user"); 
?>