Facebookグループのユーザー数を監視し、ウェブサイトに表示する必要があります。API を使用してユーザー ID を取得できることは知っていますが、500 に制限されています (メンバーの総数が 500 以上の場合)。
私が設定した Facebook グループにサインアップしたメンバーの総数を取得する最も簡単な方法は何ですか? これはまったく可能ですか?
Facebookグループのユーザー数を監視し、ウェブサイトに表示する必要があります。API を使用してユーザー ID を取得できることは知っていますが、500 に制限されています (メンバーの総数が 500 以上の場合)。
私が設定した Facebook グループにサインアップしたメンバーの総数を取得する最も簡単な方法は何ですか? これはまったく可能ですか?
http ボットを作成した場合、リアルタイムのパフォーマンスが重要ではないことを考えると、破棄するのはそれほど難しくありません。
次のような FQL クエリを使用して実行できます。
SELECT uid FROM group_member WHERE gid = <group_id> limit 500
SELECT uid FROM group_member WHERE gid = <group_id> limit 500 offset 500
SELECT uid FROM group_member WHERE gid = <group_id> limit 500 offset 1000
...
ループ内で(結果が0になるまで)実行すると、グループメンバーの総数が得られます
perPage = 500
for count in range(100):
res = fql('SELECT uid FROM group_member WHERE gid = %s limit %d offset %d' % (fbUserId, perPage, perPage * count))
if len(res) == 0:
break
friends += len(res)
ユーザー FQL テーブルと結合して、すべてのユーザーの詳細を取得することもできます。
SELECT uid, name, pic_square FROM user WHERE uid IN (
SELECT uid FROM group_member WHERE gid = <group_id> limit 500 offset %d )
ドキュメントによるGroups.getMembers
と、API 呼び出しで 500 を超えるグループ メンバーを取得することはできません。さらに悪いことに、500 人のランダムメンバーしか獲得できないようです。
代わりに、サイトで Facebook Connect を使用することを検討してください。私はConnectの専門家ではありませんが、実際にFacebook固有のコードを書いているので、Connectを使用してもこの問題は発生しないと思います.結果を制限する目的はないようです. 少なくとも、それが私が見ている方向です。
幸運を。