8

私は、クエリパラメータ値がどのように見えるべきかについての私の知恵の終わりにいます。したがって、グラフAPIライブラリ全体でマルチクエリを要約するには、私が知る限り、それを実行するためのコードメソッドは次のようになります。

$param = array(
 'method' => 'fql.multiquery',
 'queries' => $multiQuery,
 'callback' => '');
$queryresults = $facebook->api($param);

Facebookの新しいPHPSDKライブラリでこのメソッドを使用して、これを機能させた人はいますか?$multiQueryもしそうなら、変数の完全な値を構築する方法の例をドロップできますか?

私はこれに数日間苦労してきましたが、古いPHPライブラリの例しか見つかりません。

4

3 に答える 3

2

何日も頭をぶつけた後、質問をし、5分後に自分で答えを思いつくのはなぜですか.

これが私の素敵な経験でした。

PHP では"/'文字を使用してテキスト文字列を開始できるため、二重引用符文字と単一引用符文字のフリップ フロップにはまってしまいました。マルチクエリで定義されたクエリは、当然のことながら、二重引用符で囲まれていることに気づきました。

それで、教訓は得られましたか?複数のクエリで文字列値を使用する where 句がある場合は、ピートのために、フィルタリングする文字列値を SINGLE QUOTES で囲んでください。

BAD BAD - これが私がしたことです。myvalue と myothervalue を囲む二重引用符に注意してください。いたずら!

$multiQuery = {
     "query1":"select something from something where somecolumn = "myvalue"",
     "query2":"select something from something where somecolumn = "myothervalue""
     };

良い例 - myvalue と myothervalue を見てください。

$multiQuery = {
     "query1":"select something from something where somecolumn = 'myvalue'",
     "query2":"select something from something where somecolumn = 'myothervalue'"
     };

だから今私はできる...

$multiQuery = {
         "query1":"select something from something where somecolumn = 'myvalue'",
         "query2":"select something from something where somecolumn = 'myothervalue'"
         };

$param = array(       
     'method' => 'fql.multiquery',       
     'queries' => $multiQuery,       
     'callback' => '');       
$queryresults = $facebook->api($param);

そして、変数の実際の型が何であるか疑問に思っている人がいる場合$multiQuery(私のような初心者にとって)、それは単なる文字列データ型です。これは配列ではなく、テキストほど気の利いたものではありません。

于 2010-12-02T08:08:47.743 に答える
1

それぞれのURLを持つノードIDの配列を値として検討します

/**
 *A JSON-encoded dictionary of the queries to perform. The array contains a set of key/value pairs.
 *Each key is a query name, which can contain only alphanumeric characters and optional underscores.
 *Each key maps to a value containing a traditional FQL query.
 */
$fql = '{';
foreach ($path as $key1 => $value1) {
    $fql .= '"' . $key1 . '":"SELECT share_count, like_count, comment_count, total_count FROM link_stat WHERE url=\'' . $value1 . '\'",';
}

$fql .= '}';

$param = array(
    'method'   => 'fql.multiquery',
    'queries'  => $fql,
    'callback' => ''
);
try {
    $fqlresult = $facebook->api($param);
} catch (FacebookApiException $e) {
    watchdog('Facebook Query', 'Parsing error on node @node | @error', array('@node' => $key1, '@error' => $e), WATCHDOG_DEBUG); }
于 2011-02-12T16:36:45.633 に答える
0

これを試すことができます:

$multiQuery= array ("query1" => "query #1 goes here","query2" => "query #2 goes here");

$param = array(
 'method' => 'fql.multiquery',
 'queries' => $multiQuery,
 'callback' => '');

$queryresults = $facebook->api($param);
于 2013-02-22T03:58:46.567 に答える