Facebook FQL-запрос, чтобы получить всех пользователей онлайн - PullRequest
4 голосов
/ 25 марта 2011

Я веду учет всех пользователей моего приложения в локальной базе данных MySQL. У меня есть вся необходимая информация, необходимая для получения статуса присутствия пользователя в сети [UID, access_token и предоставленного extended permission].

Как получить статус присутствия в сети всех пользователей?

Подход, который я сейчас использую, заключается в том, чтобы опрашивать каждого пользователя отдельно:

$facebook->api(array
(
    'access_token'  => 'x',
    'method'        => 'fql.query',
    'query'     => "SELECT uid, name, first_name, last_name, online_presence FROM user WHERE uid = x"
));

Но сейчас нужно пройти процедуру с 150 пользователями. Я даже не говорю о 400+ или 1000+.

p.s. Multiquery не работает для меня, потому что для запроса присутствия пользователя необходимо предоставить access_token.

Ответы [ 3 ]

1 голос
/ 08 декабря 2011

Мое решение:

SELECT name, uid, online_presence FROM user WHERE uid=me()
0 голосов
/ 05 мая 2011

Это на самом деле не вариант, и с точки зрения того, почему вам нужны эти данные, не совсем понятно, какова их цель. Возможно, если бы вы могли предоставить больше информации, было бы доступно другое решение.

Другим жизнеспособным вариантом является использование API чата. Это скажет вам всех пользователей, которые настроены на онлайн статус в чате Facebook. Это не было бы слишком надежно, поскольку это включает пользователей, имеющих доступ исключительно к чату Facebook (программное обеспечение для настольных ПК или мобильных устройств), в отличие от реальных пользователей сайта.

0 голосов
/ 26 марта 2011

Для всех онлайн

SELECT name,uid FROM user WHERE
  online_presence IN ('active', 'idle')

С другом

SELECT name,uid FROM user WHERE
  online_presence IN ('active', 'idle')
  AND uid IN (
    SELECT uid2 FROM friend WHERE uid1 = $user_id
  )
...