我使用php-sdk显示用户的facebook信息。我已经成功显示了用户个人资料信息,但在获取任何相册或照片时,我收到了空白数据给我。我看过照片需要access_token。 此外,如果我把这个查询放在facebook图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>';
}
?&GT;
答案 0 :(得分:0)
需要为$ dialog_url变量添加一个参数,该变量是'scope',它定义了为应用程序提供的权限
$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/
由于
Shreyas