FQL:查询事件表返回venue.name代替venue.id的(FQL: query for ev

2019-09-21 00:49发布

当进行查询来获取事件细节我似乎得到venue.name而不是venue.id结果集。 出现了工作表结构的变化突击还是我做错了什么。 该图形API浏览器给人的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
            (
            )

    )

)

Answer 1:

如果我测试此查询

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

在图形API资源管理器使用FQL选项卡(!),我得到

"venue": {
  "id": 126049334121592
}

而不是场地的名称。

并做了multiquery喜欢你的与第二个查询是

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

我越来越会场信息为好。

能不能请你,如果你得到了不同的结果,如果你做你的查询不使用$设置阵列检查

'method'    => 'fql.multiquery',

只是

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

代替?



Answer 2:

我碰到这个问题今天又花了相当长的一段时间来排除故障了。 这似乎是相关的访问令牌。 当我用我的应用程序的访问令牌,请求会场的数据,有些场馆全部II得到的是venue.name场。 但是,如果我用图形API浏览器来生成不同的令牌,我得到的venue.id场预期。

我就尽量用我的应用程序令牌替换图形API浏览器的生成访问令牌,果然都是我收了回来是venue.name。



文章来源: FQL: query for event table returns venue.name instead of venue.id