[英]Get all Photos from facebook album Error
嗨,大家好,我想从用户Facebook相册中获取所有数据。 我运行查询:-
SELECT src_big, caption, src_small, src FROM photo WHERE owner = OWNER_ID AND aid = 'ALBUM_ID'
我收到以下错误:-
{
"error": {
"message": "Your statement is not indexable. The WHERE clause must contain an indexable column. Such columns are marked with * in the tables linked from http://developers.facebook.com/docs/reference/fql ",
"type": "NoIndexFunctionException",
"code": 604
}
}
请参阅sceenshot:-
当我搜索时,得到了此解决方案FQL您的语句不可索引,但可以在控制台中使用,但无法正常工作
编辑:-我尝试了以下代码
<?php
require 'facebook.php';
$facebook = new Facebook(array(
'appId' => 'APP_ID',
'secret' => 'SECRET_KEY',
'cookie' => true,
));
$fql = "SELECT aid FROM album WHERE aid = 'ALBUM_ID' ";
$response = $facebook->api(array(
'method' => 'fql.query',
'query' =>$fql,
));
print_r($response);
?>
但它返回空数组Array()
编辑1:-
我也在下面尝试了
查询:- SELECT pid,src_big,owner,link,position,created,caption,src FROM photo WHERE aid="ALBUM_ID"
编辑2:-
我尝试了以下代码,但我得到了所有图像,但问题是当我使用朋友的ownerid时,它返回结果,但是当我使用我的id时,它返回空,为什么?
<?php
ob_start();
require 'facebook.php';
$facebook = new Facebook(array(
'appId' => 'APP_ID',
'secret' => 'SECRET_KEY',
'cookie' => true,
));
$fql = "select aid,cover_pid,description,created,name,photo_count from album where owner=OWNER_IDorder by created desc limit 10";
$result = $facebook->api(array(
'method'=>'fql.query',
'query'=>$fql
));
for($i=0;$i<sizeof($result);$i++){
$fql = "select images,created,link,pid,src_big,src_big_width,src_big_height from photo where aid='".$result[$i]['aid']."'";
$ret = $facebook->api(array(
'method'=>'fql.query',
'query'=>$fql
));
for($j=0;$j<sizeof($ret);$j++){
echo '<img src="'.$ret[$j]['src_big'].'"></img> ('.$ret[$j]['created'].')';
echo '<br>';
}
echo '-----------------------------------------------------------------------------<br><br>';
}
?>
如果我做错了,请对此提供帮助。 提前致谢。
首先,您使用Graph API在Graph API资源管理器中尝试了查询; 您应该在FQL查询控制台中对其进行测试。
第二件事,我并没有真正展示如何获得aid
,但这并不是您从facebook api获得的专辑ID。 它是您应该在查询中使用以获取照片的album_object_id
。
您的查询将是:
SELECT src_big, caption, src_small, src FROM photo WHERE owner = OWNER_ID AND album_object_id = 'ALBUM_ID'
PS我在FQL资源管理器中尝试过,并且效果很好!
由于这是Facebook的许可问题,因此我通过要求用户允许访问其个人资料,照片等来解决此问题,如果用户接受,则使用以下代码可以获取他的Facebook照片。
<?php
ob_start();
require 'facebook.php';
@session_start();
include_once('config.php');
$facebook = new Facebook(array(
'appId' => APP_ID,
'secret' => SECRET_KEY,
'cookie' => true,
));
$fql = "select aid,cover_pid,description,created,name,photo_count from album where owner=me() order by created desc limit 10";
$result = $facebook->api(array(
'method'=>'fql.query',
'query'=>$fql
));
for($i=0;$i<sizeof($result);$i++){
$fql = "select images,created,link,pid,src_big,src_big_width,src_big_height from photo where aid='".$result[$i]['aid']."'";
$ret = $facebook->api(array(
'method'=>'fql.query',
'query'=>$fql,
'scope'=>'user_photos'
));
$k = 1;
for($j=0;$j<sizeof($ret);$j++){
echo '<div>';
echo '<img src="'.$ret[$j]['src_big'].'" id="img'.$k.'"></img>';
echo '<input type="checkbox" class="select_img" current_check = "'.$k.'" name="image_checkbox">';
echo '</div>';
$k++;
}
}
?>
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.