2

在进行查询以获取事件详细信息时,我似乎在结果集中获得了场地名称而不是场地 ID。表结构是否发生了未经宣布的更改,或者我做错了什么。Graph API Explorer 提供了venue.id,但在我自己的网站中通过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'

使用 Graph API 资源管理器中的 FQL 选项卡(!),我得到

"venue": {
  "id": 126049334121592
}

而不是场地的名称。

并做一个像你这样的多重查询,第二个查询是

"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

我今天遇到了这个问题,并花了很多时间对其进行故障排除。它似乎与访问令牌有关。当我使用我的应用程序的访问令牌请求场地数据时,对于某些场地,我得到的只是场地名称字段。但是,如果我使用 Graph API Explorer 生成不同的令牌,我会按预期获得场地.id 字段。

我什至用我的应用令牌替换了 Graph API Explorer 生成的访问令牌,果然我收到的只是场地名称。

于 2012-10-14T04:42:44.250 回答