4

私は自分のアプリのすべてのユーザーをローカルの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+についてさえ話していません。

ps multiqueryは、ユーザーのプレゼンスを要求するためにを提供する必要があるため、機能しませんでしたaccess_token

4

3 に答える 3

1

私の解決策:

SELECT name, uid, online_presence FROM user WHERE uid=me()
于 2011-12-08T05:09:46.637 に答える
0

これは実際にはオプションではなく、なぜこのデータが必要なのかという点では、その目的がすぐにはわかりません。より多くの情報を提供できれば、別の解決策が利用できるかもしれません。

別の実行可能なオプションは、Chat API に依存することです。これにより、Facebook チャットでオンライン ステータスに設定されているすべてのユーザーがわかります。これには、実際の Web サイト ユーザーではなく、Facebook チャット (デスクトップ/モバイル ソフトウェア) のみにアクセスするユーザーが含まれるため、あまり信頼できません。

于 2011-05-04T20:27:15.527 に答える
0

オンラインの皆様へ

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
  )
于 2011-03-26T10:09:59.857 に答える