-1

我正在使用 php-sdk 来显示用户的 facebook 信息。我已成功显示用户个人资料信息,但在获取任何相册或照片时,我收到了空白数据。我阅读的照片需要 access_token。此外,如果我将此查询放在 facebook graph api explorer 中,它会向我展示完美的结果。所以查询是正确的可能是我传递 url 的方式是错误的。

我没有得到这个问题。请帮忙。'; $app_secret = ''; $my_url = '';

          $config = array(
            'appId' => '<appid>',
            'secret' => '<appsecrete>',
           );

            $facebook = new Facebook($config);
            $user_id = $facebook->getUser();

            $code = $_REQUEST["code"];
            if($user_id) {
             //auth user
             if(empty($code)) {
                $dialog_url = 'https://www.facebook.com/dialog/oauth?client_id=' 
                    . $app_id . '&redirect_uri=' . urlencode($my_url) ;
                    echo("<script>top.location.href='" . $dialog_url . "'</script>");
              }

              //get user access_token
              $token_url = 'https://graph.facebook.com/oauth/access_token?client_id='
                . $app_id . '&redirect_uri=' . urlencode($my_url) 
                . '&client_secret=' . $app_secret 
                . '&code=' . $code;
              $access_token = file_get_contents($token_url);

             $fql_query_url = 'https://graph.facebook.com/'.'fql?q=SELECT+pid,src_small+FROM+photo+WHERE+aid+IN+(SELECT+aid+FROM+album+WHERE+owner=+me())&'.$access_token;
             $fql_query_result = file_get_contents($fql_query_url);
             $fql_query_obj = json_decode($fql_query_result, true);


          //display results of fql query
          echo '<pre>';
          print_r("query results:");
          print_r($fql_query_obj);
          echo '</pre>';

}
?>

4

1 回答 1

0

需要为 $dialog_url 变量添加一个参数,它是“范围”,它定义了为应用程序提供的权限

$dialog_url = 'https://www.facebook.com/dialog/oauth/?client_id='.$app_id.'&redirect_uri='.urlencode($my_url).'&scope=user_photos';
                    echo("<script>top.location.href='" . $dialog_url . "'</script>");

以供参考,

http://developers.facebook.com/docs/reference/dialogs/oauth/

谢谢

什雷亚斯

于 2012-07-05T11:46:24.187 回答