2012-08-16 53 views
0
$fql = 'SELECT name,aid,photo_count,owner FROM album WHERE owner='.$userId; 

$fql = 'SELECT aid,owner,name FROM album WHERE owner IN 
      (SELECT uid1 FROM friend WHERE uid1 = 100002278102636 LIMIT 1)'; 

我用我的笨的应用程序上传照片,将被命名为当前date.Creating专辑和其他所有的上传工作正常专辑,但是当我试图使用所有者字段其返回上面的查询空array.But正常工作与Facebook测试查询窗口小部件Facebook的FQL查询专辑表中没有与图形API PHP工作

https://developers.facebook.com/tools/explorer?fql=SELECT%20aid%2Cowner%2Cname%20FROM%20album%20WHERE%20owner%3D100002278102636

我用API这样

从专辑表中选择专辑名称
$ret_obj1 = $this->facebook->api(array(
            'method' => 'fql.query', 
            'query' => $fql, 
           )); 

我在做什么错了...在此先感谢

+0

是不是有扩展权限问题?你是否尝试过通过图表API浏览器作为应用程序,你真的使用和具有相同的权限? – derki 2012-08-16 10:18:36

回答

0

我的猜测是,这是一个权限问题。要获得这些结果,您需要以用户身份进行身份验证,并在访问令牌中具有user_photosfriends_photos权限。如果你不这样做,那么FQL查询将返回一个结果,Facebook将在将结果提供给你的应用程序之前将结果过滤掉,从而给出一个空的数据集。

另一种可能性是您的访问令牌不属于用户100002278102636.如果是这种情况,那么friend子查询将失败。

另外,您现在应该使用album_object_id而不是aid。看起来aid字段(和pid)将在11月份被删除。

0

您是否尝试过通过urlencode运行您的$ fql查询?你会发现,Facebook的上图浏览器中的一个编码,但你是不是

$ret_obj1 = $this->facebook->api(array(
           'method' => 'fql.query', 
           'query' => urlencode($fql), 
          )); 

顺便说一句 - 这个查询:

$fql = 'SELECT aid,owner,name FROM album WHERE owner IN 
     (SELECT uid1 FROM friend WHERE uid1 = 100002278102636 LIMIT 1)'; 

您选择UID1 WHERE UID1 =已知值?为什么不只是做

$fql = 'SELECT aid,owner,name FROM album WHERE owner = 100002278102636)';