1

PHPSDKを使用してfqlmultyクエリを作成しようとしています。これは私のコードです

try {
    $fql = array( 
        "query1" => "SELECT uid2 FROM friend WHERE uid1 = me()",
        "query2" => "SELECT name, url, pic FROM profile WHERE id IN (SELECT uid2 FROM #query1)"
    );
    //$fql = "SELECT uid2 FROM friend WHERE uid1 = me()";
    // Proceed knowing you have a logged in user who's authenticated.
    $user_profile = $facebook->api( array(
        'method' => 'fql.multiquery',
        'query' => $fql,
    ) );
} catch ( FacebookApiException $e ) {
    error_log( print_r( $e->getMessage(), true ) );
    $user = NULL;
}

そして、これは常にメッセージなしで例外を返します

[04-May-2012 20:22:26 UTC] PHP通知:未定義のプロパティ:FacebookApiException :: $ getMessage in C:\ Program Files(x86)\ Zend \ Apache2 \ htdocs \ wordpress \ wp-content \ plugins \ all- in-one-event-calendar \ lib \ plugins \ A1ecFacebookConnectorPlugin.php on line 120 [04-May-2012 20:22:26 UTC]

私は明らかに何か間違ったことをしています、それは何でしょうか?

4

2 に答える 2

6

わかりました。これを行う方法を見つけましqueriesた。パラメータとして使用する必要があります。query

try {
    $fql = array( 
        "query1" => "SELECT uid2 FROM friend WHERE uid1 = me()",
        "query2" => "SELECT name, url, pic FROM profile WHERE id IN (SELECT uid2 FROM #query1)"
    );
    //$fql = "SELECT uid2 FROM friend WHERE uid1 = me()";
    // Proceed knowing you have a logged in user who's authenticated.
    $user_profile = $facebook->api( array(
        'method' => 'fql.multiquery',
        'queries' => $fql,
    ) );
} catch ( FacebookApiException $e ) {
    error_log( print_r( $e->getMessage(), true ) );
    $user = NULL;
}
于 2012-05-05T10:03:48.743 に答える
1

あなたの問題は、$e->getMessage存在しないものを呼び出そうとしていることです。120行目のコードは次のようになります。

error_log( print_r( $e, true ) );

マルチクエリで問題が発生した場合は、これを単一のクエリとして実行できます。

$fql = "SELECT name, url, pic FROM profile WHERE id IN 
        (SELECT uid2 FROM friend WHERE uid1 = me() )";

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

この3つのSELECTのようにクエリを実行することができました。4つのSELECTは多すぎるようです。

于 2012-05-04T21:07:21.083 に答える