2012-01-16 3 views
0

Я хочу изменить свой код так, чтобы он сначала проверил, понравилась ли пользователю страница. После этого (если да) возникнет вопрос, чтобы принять условия, и если он нажмет на кнопку принятия, появится диалог запроса прав доступа Facebook. Как я могу это сделать?Facebook php sdk: запросить разрешение со ссылкой, а не перенаправить

Проблема заключается в том, что каждый раз когда пользователь нажимает на ссылку приложении переменного $ пользователя всегда ложно, но он вошел в ...

<?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> 

ответ

Смежные вопросы