2

イベントの詳細を取得するためにクエリを実行すると、結果セットでvenue.idではなくvenue.nameが取得されるようです。テーブル構造に予告なしの変更がありましたか、それとも何か間違ったことをしていますか。グラフAPIエクスプローラーはvenue.idを提供しますが、自分のWebサイトでPHP SDKを介してFQLを使用する場合、それは私が取得するvenue.nameです。

コードは次のとおりです。

$fql='{
"event_info": "SELECT name,description, pic_small,pic_big, eid,venue,location FROM event WHERE eid ='.$_GET['id'].'", 
"event_venue":"SELECT name, username, page_id, location FROM page WHERE name IN (SELECT venue.id FROM #event_info)"
}';

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

    $result   =   $facebook->api($setup);

これにより、「event_venue」結果セットが空になります。

ダンプは次のとおりです。

Array
(    
    [0] => Array
         (
            [name] => event_info
        [fql_result_set] => Array
            (
                [0] => Array
                    (
                        [eid] => 410351692336116
                        [venue] => Array
                            (
                                [name] => Boothill 
                            )

                        [location] => Boothill
                    )

            )

    )

[1] => Array
    (
        [name] => event_venue
        [fql_result_set] => Array
            (
            )

    )

)
4

2 に答える 2

2

このクエリをテストすると

SELECT name,description, pic_small,pic_big, eid,venue,location
  FROM event WHERE eid ='410351692336116'

グラフAPIエクスプローラーのFQLタブ(!)を使用すると、次のようになります。

"venue": {
  "id": 126049334121592
}

会場の名前ではありません。

そして、2番目のクエリが

"event_venue":"SELECT name, username, page_id, location FROM page
  WHERE page_id IN (SELECT venue.id FROM #event_info)"

会場情報も取得しています。

$ setup配列を使用せずにクエリを実行した場合に、異なる結果が得られるかどうかを確認してください。

'method'    => 'fql.multiquery',

でもただ

$facebook->api('/fql?q='.urlencode('{ "event_info": "…", "event_venue": "… FROM page
  WHERE page_id IN (SELECT venue.id FROM #event_info)" }'));

代わりは?

于 2012-08-08T08:13:15.387 に答える
0

私は今日この問題に遭遇し、トラブルシューティングにかなりの時間を費やしました。アクセストークンに関連しているようです。アプリのアクセストークンを使用して会場データをリクエストすると、一部の会場では、IIが取得するのはvenue.nameフィールドだけです。ただし、Graph API Explorerを使用して別のトークンを生成すると、期待どおりにvenue.idフィールドが取得されます。

グラフAPIエクスプローラーで生成されたアクセストークンをアプリトークンに置き換えるところまで行きましたが、受け取ったのはvenue.nameだけでした。

于 2012-10-14T04:42:44.250 に答える