2012-03-26 70 views
1

我写了下面的代码来学习FQL multiquery是如何工作的:FQL multiquery错误

include_once "fbmain.php"; 
try{  
$your_id=xxxxxxxx; 
    $fql= '{ 
    "friends":"SELECT uid2 FROM friend WHERE uid1='.$your_uid.'," 
    "friendinfo":"SELECT * FROM standard_user_info WHERE uid IN (SELECT uid2 
        FROM #friends)" 
      }'; 
$res = $facebook->api_client->fql_multiquery($fql); 
    } 
catch(Exception $o){ 
     d($o); // d() is function to print 
    } 

但输出显示的错误上线非对象

调用一个成员函数fql_multiquery() 9

我也试过其他查询,而不是这两个,但问题仍然是一样的。我使用PHP SDK 3.0。

帮助请请。

回答

0

我不使用多重查询,因为fql已经移动到图形api。相反,我使用批量请求。 以下是/ feed的请求示例,前10个帖子中前10个结果的注释和fql multi的固定链接。我相信这对于你所需要的有点过分,但是对于混合graph和fql和使用名称功能来说,这是最好的例子,这似乎是你需要携带的朋友。

https://developers.facebook.com/docs/reference/api/batch/

<?php 
    if($type=="home"){ 
$relURL = '/'.$pageid.'/'.$type.'?'.$access_token.'%26limit='.$limit.'%26return_ssl_resources=1%26fields=id,from,name,message,likes,comments,link,picture,caption,story,source,created_time,type,actions,application,object_id,description%26since='.$since.'%26until='.$until.'%26offset='.$offset.''; 
    }else{ 
$relURL = '/'.$pageid.'/'.$type.'?'.$app_access_token.'%26limit='.$limit.'%26return_ssl_resources=1%26fields=id,from,name,message,likes,comments,link,picture,caption,story,source,created_time,type,actions,application,object_id,description%26since='.$since.'%26until='.$until.'%26offset='.$offset.''; 
    } 
$queryProfile = array(
     array('method' => 'GET', 'relative_url' => '/'.$pageid.'?fields=id,name,link,picture%26'.$app_access_token.''), 

    array('method' => 'GET', 'relative_url' => ''.$relURL.'', 'name' => 'comments', 'omit_response_on_success' => false), 
     array('method' => 'GET', 'relative_url' => '/{result=comments:$.data.0.id}/comments?fields=id,from,message,created_time%26limit=3%26offset=0'), 
     array('method' => 'GET', 'relative_url' => '/{result=comments:$.data.1.id}/comments?fields=id,from,message,created_time%26limit=3%26offset=0'), 
     array('method' => 'GET', 'relative_url' => '/{result=comments:$.data.2.id}/comments?fields=id,from,message,created_time%26limit=3%26offset=0'), 
     array('method' => 'GET', 'relative_url' => '/{result=comments:$.data.3.id}/comments?fields=id,from,message,created_time%26limit=3%26offset=0'), 
     array('method' => 'GET', 'relative_url' => '/{result=comments:$.data.4.id}/comments?fields=id,from,message,created_time%26limit=3%26offset=0'), 
     array('method' => 'GET', 'relative_url' => '/{result=comments:$.data.5.id}/comments?fields=id,from,message,created_time%26limit=3%26offset=0'), 
     array('method' => 'GET', 'relative_url' => '/{result=comments:$.data.6.id}/comments?fields=id,from,message,created_time%26limit=3%26offset=0'), 
     array('method' => 'GET', 'relative_url' => '/{result=comments:$.data.7.id}/comments?fields=id,from,message,created_time%26limit=3%26offset=0'), 
     array('method' => 'GET', 'relative_url' => '/{result=comments:$.data.8.id}/comments?fields=id,from,message,created_time%26limit=3%26offset=0'), 
     array('method' => 'GET', 'relative_url' => '/{result=comments:$.data.9.id}/comments?fields=id,from,message,created_time%26limit=3%26offset=0'), 
     array('method' => 'GET', 'relative_url' => '/fql?q=SELECT+permalink+FROM+stream+WHERE+source_id=\''.$pageid.'\'+AND+post_id=\'{result=comments:$.data.0.id}\''), 
     array('method' => 'GET', 'relative_url' => '/fql?q=SELECT+permalink+FROM+stream+WHERE+source_id=\''.$pageid.'\'+AND+post_id=\'{result=comments:$.data.1.id}\''), 
     array('method' => 'GET', 'relative_url' => '/fql?q=SELECT+permalink+FROM+stream+WHERE+source_id=\''.$pageid.'\'+AND+post_id=\'{result=comments:$.data.2.id}\''), 
     array('method' => 'GET', 'relative_url' => '/fql?q=SELECT+permalink+FROM+stream+WHERE+source_id=\''.$pageid.'\'+AND+post_id=\'{result=comments:$.data.3.id}\''), 
     array('method' => 'GET', 'relative_url' => '/fql?q=SELECT+permalink+FROM+stream+WHERE+source_id=\''.$pageid.'\'+AND+post_id=\'{result=comments:$.data.4.id}\''), 
     array('method' => 'GET', 'relative_url' => '/fql?q=SELECT+permalink+FROM+stream+WHERE+source_id=\''.$pageid.'\'+AND+post_id=\'{result=comments:$.data.5.id}\''), 
     array('method' => 'GET', 'relative_url' => '/fql?q=SELECT+permalink+FROM+stream+WHERE+source_id=\''.$pageid.'\'+AND+post_id=\'{result=comments:$.data.6.id}\''), 
     array('method' => 'GET', 'relative_url' => '/fql?q=SELECT+permalink+FROM+stream+WHERE+source_id=\''.$pageid.'\'+AND+post_id=\'{result=comments:$.data.7.id}\''), 
    //array('method' => 'GET', 'relative_url' => '/'.$pageInfo[id].'/photos?fields=id,name%26limit=9') 
); 
$batchResponse = $facebook->api('?batch='.json_encode($queryProfile), 'POST'); 
    $pageInfo = json_decode($batchResponse[0]['body'], true); 
    $pageType = $pageInfo[type]; 
    $pageLink = $pageInfo[link]; 
    $thispageid = $pageInfo[id]; 
    $MEcomments = json_decode($batchResponse[1]['body'], true); 
?>