我需要监控 facebook 组用户的数量并将其显示在网站上。我知道可以使用他们的 API 获取用户 ID,但仅限于 500 个(如果成员总数为 500+)。
获得注册我设置的 Facebook 群组的成员总数的最简单方法是什么?这是可能吗?
我需要监控 facebook 组用户的数量并将其显示在网站上。我知道可以使用他们的 API 获取用户 ID,但仅限于 500 个(如果成员总数为 500+)。
获得注册我设置的 Facebook 群组的成员总数的最简单方法是什么?这是可能吗?
如果你编写一个 http bot,它应该不会很难废弃,因为实时性能不是关键。
您可以使用这样的 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 特定的代码——似乎没有任何限制结果的目的。至少我会朝这个方向看。
祝你好运。