1

fql マルチクエリがどのように機能するかを学習するために、次のコードを作成しました。

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
    }

しかし、出力にはエラーが表示されます

9 行目の非オブジェクトに対するメンバー関数 fql_multiquery() の呼び出し

これら2つの代わりに他のクエリも試しましたが、問題は同じままです。私はphp sdk 3.0を使用しています。

助けてください。

4

2 に答える 2

0

のインスタンス化にはかなり問題があるように見えます

$facebook->api_client

[standard_user_info]の列[uid]は文字列型であるため、おそらく引用符も追加する必要があることにも注意してください。
https://developers.facebook.com/docs/reference/fql/standard_user_info/

FBドキュメントによると、FQLマルチクエリは後続のバッチ呼び出しよりも高速である必要があります。 https://developers.facebook.com/docs/reference/fql/

于 2012-05-22T14:27:51.140 に答える
0

fql がグラフ API に移動したため、Multi Query は使用しません。代わりに、バッチ リクエストを使用します。以下は、/feed のリクエスト、最初の 10 件の結果のコメント、および最初の 10 件の投稿のパーマリンクの fql multi のサンプルです。これはあなたが必要としているものを少し殺し過ぎていると確信していますが、グラフと 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);
?>
于 2012-03-26T23:28:06.297 に答える