Пакетный запрос FQL с использованием PHP - PullRequest
0 голосов
/ 16 марта 2012

В последнее время я работаю с пакетными запросами Facebook, используя PHP.Теперь я пытаюсь получить имена людей, которые выбирают опцию в вопросах Facebook, но также получают опцию, которую они выбрали.Связать это с простым запросом с использованием FQL сложно, поэтому я попытался разделить их

Используя это:

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

AND

SELECT uid, username, ... FROM user WHERE uid IN ({result=aliasOfTheLastRequest:$.data.*.voter_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, я получаю результат данных первого запроса, но не второго.Для второго я получил и пустой массив;и с использованием другой опции: «Невозможно указать пустой идентификатор»;поэтому я не получаю результаты первого запроса во второй.

Я что-то не так делаю?

1 Ответ

1 голос
/ 12 апреля 2012

Просто замените $.data.*.voter_id на $.*.voter_id (fql.query не возвращает data объект, просто body)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...