Как использовать параметр массива в Facebook Query request в Android. - PullRequest
0 голосов
/ 30 июля 2011

Сейчас я использую Android Bundle для создания запросов на Facebook Query Language

Bundle params = new Bundle();
params.putString("method", "fql.query");
params.putString("query", "SELECT * FROM * WHERE source_id = *");
mAsyncRunner.request(params, new ExampleRequestListener());

Из примеров PHP я видел массивы идентификаторов пользователей, отправленных в качестве параметра для запроса, но как я могу добавить массив в этот пакет для выполнения запроса из Java для приложения Android?

Спасибо за помощь.

1 Ответ

1 голос
/ 30 июля 2011

Я почти уверен, что запрос, который вы отправляете на FQL, не имеет ничего общего с тем, что вы используете Bundle, Android и Java - волшебство произойдет в самом запросе FQL.

Канонический пример запроса FQL для нескольких UID выглядит примерно так:

$fql = "SELECT name FROM user WHERE uid IN (SELECT uid2 FROM friend WHERE uid1 = me())";

или из документации по многопользовательским запросам:

"query1":"SELECT uid, rsvp_status FROM event_member WHERE eid=12345678"
"query2":"SELECT name, url, pic FROM profile WHERE id IN (SELECT uid FROM #query1)"

Так что для вашего случая я бы изменил строку с запросом. Я также заметил, что у вас есть

SELECT * FROM * 

в этой строке. Вы уверены, что не хотите выбирать стол? Например:

params.putString("query", "SELECT * FROM user WHERE uid in [YOUR SOURCE LIST]);
...