2012-01-16 71 views
0

我想改變我的代碼,所以首先它會檢查用戶是否喜歡這個頁面。在此之後(如果是的話)會出現一個問題,接受條款,如果他點擊接受按鈕,Facebook權限請求對話框將會出現。我怎樣才能做到這一點?Facebook的PHP SDK:請求鏈接權限,而不是重定向

的問題是,每次在應用用戶點擊鏈接$ USER變量始終是假的,但他被記錄在...

<?php 
require 'facebook.php'; 

$facebook = new Facebook(array(
'appId' => 'xxxxx', 
'secret' => 'yyyyy', 
'baseUrl' => 'http://hosting.address/', 
'appBaseUrl' => 'http://apps.facebook.com/app-name/', 
'fileUpload' => 'true', 
)); 

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

$params = array(
    scope => 'publish_stream,user_photos', 
    redirect_uri => 'http://www.facebook.com/xxxxx?sk=app_yyyyy&app_data=1' 
    ); 

$signed_request = $facebook->getSignedRequest(); 
$app_data = $signed_request["app_data"]; 


?> 
        <!doctype html> 
        <html xmlns:fb="http://www.facebook.com/2008/fbml"> 
        <head> 
        <title>the title</title> 
        </head> 
        <body> 
<?php if ($user){ 

    try { 
     $user_profile = $facebook->api('/me'); 
     $likes = $facebook->api("/me/likes/123123123"); //page ID 

      if(!empty($likes['data'])){ 

       $scope = 'publish_stream,user_photos'; 
       $scope_params = explode(',',$scope); 

       $permissions = $facebook->api("/me/permissions"); 
        if(array_key_exists('publish_stream', $permissions['data'][0]) && array_key_exists('user_photos', $permissions['data'][0]) && isset($app_data)) { 


        } else { 

echo "<a href=\"/redirect.php\">accept</a></td>"; 
echo "<a href=\"http://www.facebook.com/pageurl\">deny</a></td>"; 

        } 
      }else{ 
       echo "<img width=\"520px\" src=\"no-fan.jpg\" />"; 
      } 

    } catch (FacebookApiException $e) { 
     echo '<pre>'.htmlspecialchars(print_r($e, true)).'</pre>'; 
     $user = null; 
     } 
    } 

    if ($user) { 
     } else { 
      $loginUrl = $facebook->getLoginUrl($params); 
      echo '<script type="text/javascript">top.location.href = "'.$loginUrl .'";</script>'; 
     } 

     ?> 

</body> 
</html> 

回答

相關問題