Facebook graph api 使用PHP的FQL批处理请求

Facebook graph api 使用PHP的FQL批处理请求,facebook-graph-api,Facebook Graph Api,最近,我正在使用PHP处理Facebook批处理请求。现在,我正在尝试获取在Facebook问题中选择选项的人的姓名,同时也获取他们选择的选项。将其与使用FQL的简单查询联系起来是很困难的,所以我尝试将它们分开 使用此选项: SELECT voter_id FROM question_option_votes WHERE option_id IN (SELECT id from question_option WHERE question_id = "...") 及 但我什么都没有!我知道使

最近,我正在使用PHP处理Facebook批处理请求。现在,我正在尝试获取在Facebook问题中选择选项的人的姓名,同时也获取他们选择的选项。将其与使用FQL的简单查询联系起来是很困难的,所以我尝试将它们分开

使用此选项:

SELECT voter_id FROM question_option_votes WHERE option_id IN (SELECT  id from question_option WHERE question_id = "...")

但我什么都没有!我知道使用批次的请求限制为20

$fql = 'method/fql.query?query=SELECT voter_id FROM question_option_votes WHERE option_id IN (SELECT  id from question_option WHERE question_id = "252339054834206") LIMIT 20';
$batch = array(
    array(
        'method' => 'GET',
        'name' => 'getfriends',
        'relative_url' => str_replace(' ', '+', $fql),
        'omit_response_on_success' => false // Also changed to true
    ),
    array(
        'method' => 'GET', 
        'relative_url' => 'method/fql.query?query=SELECT+uid,+username,... FROM+user+WHERE+uid+IN+({result=aliasOfTheLastRequest:$.data.*.voter_id) ' // I also tried this '?ids={result=getfriends:$.data.*.voter_id}' 
    )
);

$data = $this->facebook->api('/?batch=' . json_encode($batch) . '&access_token=' . $access_token, 'POST');
当我打印$data时,我得到了第一个查询的数据结果,而不是第二个查询的数据结果。第二次我得到了一个空数组;并使用另一个选项:“不能指定空标识符”;所以我不会把第一个查询的结果放到第二个查询中


我做错什么了吗?

只要用
$.*替换
$.data.*.voter\u id
。voter\u id
fql.query
不返回
数据
对象,只返回
主体

你可能是对的。稍后我会看一看,因为现在我没有任何页面访问令牌来访问一些问题来测试它。它成功了!你是对的。但我找到了另一种方法。不比这更好,但它帮助了我(带引用的多查询)。谢谢没问题。我以为你知道uid在哪里(从#aliasOfLastQuery中选择uid)你只需要
ids={result=…}
语法:)
$fql = 'method/fql.query?query=SELECT voter_id FROM question_option_votes WHERE option_id IN (SELECT  id from question_option WHERE question_id = "252339054834206") LIMIT 20';
$batch = array(
    array(
        'method' => 'GET',
        'name' => 'getfriends',
        'relative_url' => str_replace(' ', '+', $fql),
        'omit_response_on_success' => false // Also changed to true
    ),
    array(
        'method' => 'GET', 
        'relative_url' => 'method/fql.query?query=SELECT+uid,+username,... FROM+user+WHERE+uid+IN+({result=aliasOfTheLastRequest:$.data.*.voter_id) ' // I also tried this '?ids={result=getfriends:$.data.*.voter_id}' 
    )
);

$data = $this->facebook->api('/?batch=' . json_encode($batch) . '&access_token=' . $access_token, 'POST');