2012-08-22 3 views
0

페이스 북 API를 처음 사용합니다.버튼처럼 페이스 북을 클릭 할 때 아무 것도 못받습니다.

사용자가 "Page1.php"에서 "Win Prize"와 같은 링크를 클릭하면 "Page2.php"가 표시됩니다.

"Page2.php"는 사용자가 Facebook에 로그인했는지, 그리고 Facebook 페이지를 좋아하는지 여부를 확인합니다.

그렇다면 버튼처럼 페이스 북을 표시하지 마십시오. 사용자가이 버튼을 클릭하면 페이지가 사용자가 좋아하고 "WinPrize.php"로 리디렉션됩니다. 여기

사전에

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
<html xmlns="http://www.w3.org/1999/xhtml" xmlns:fb="http://www.facebook.com/2008/fbml"> 
<head> 
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.6.1/jquery.min.js"></script> 
<title>Facebook Page Like</title> 
</head> 

<body> 
<?php 
require 'src/facebook.php'; 
//Puted here APP ID 
$app_id = "XXXXXXXXXXXX"; 
//Puted here app_secret key 
$app_secret = "XXXXXXXXXXXXXXXXXXXXXXXXXXX"; 

//Putted here one pageID 
$pageid="XXXXXXXX"; 

$appurl = "http://www.manektech.net/likeornot/"; 

//leave it as it is 
$facebook = new Facebook(array(
'appId' => $app_id, 
'secret' => $app_secret, 
'cookie' => true 
)); 

// Get User ID 
$user = $facebook->getUser(); 

if($user) 
{ 
    try 
    { 
     // Proceed knowing you have a logged in user who's authenticated. 
     $likeID = $facebook->api(
      array( 
       'method' => 'fql.query', 
       'query' => 'SELECT uid, page_id FROM page_fan WHERE uid="'.$user.'" AND page_id="'.$pageid.'"' 
      ) 
     ); 

     if(empty($likeID)) 
     { ?> 
      <div id="fb-root"></div> 
      <script type="text/javascript"> 
      <!-- 
       window.fbAsyncInit = function() { 

             //Putted here my orignal APP ID 
        FB.init({ appId: 'APP_ID', status: true, cookie: true, xfbml: true }); 
        FB.Event.subscribe('edge.create', function (href, widget) { 
         window.location = "http://www.google.com"; 
        }); 
       }; 
       (function() { 
        var e = document.createElement('script'); 
        e.type = 'text/javascript'; 
        e.src = document.location.protocol + '//connect.facebook.net/en_US/all.js'; 
        e.async = true; 
        document.getElementById('fb-root').appendChild(e); 
       }()); 
      //--> 
      </script> 
      <iframe src="XXX....XXX" scrolling="no" frameborder="0" style="border:none; overflow:hidden; width:450px; height:35px;" allowTransparency="true"></iframe> 
<?php } 
     else 
     { 
      header("Location: http://www.girlslovecars.com/spinwheel.php"); 
      exit(); 
     } 
    } 
    catch (FacebookApiException $e) 
    { 
     error_log($e); 
    } 
} 

if ($user) 
{ 
    $logoutUrl = $facebook->getLogoutUrl(); 
} 
else 
{ 
    $params = array(
     'scope' => 'user_likes,read_stream,publish_stream', 
     'redirect_uri' => $appurl 
    ); 
    $loginUrl = $facebook->getLoginUrl($params); 
} 

?> 

<?php if(!$user){ ?> 
    <div> 
     <a href="<?php echo $loginUrl; ?>">Login with Facebook</a> 
    </div> 
<?php } ?> 

</body> 
</html> 

감사합니다 "Page2.php"내 코드입니다

당신이 XFBML을 사용하는 등 버튼을 내장하고있는 경우 edge.create 이벤트는 해고

답변

1

- 그렇지 않습니다 iframe 버전 (사용중인 코드 블록의 스크립트 블록 바로 뒤에 요소가 있음)에서 작동합니다.

관련 문제