PHP获取所有Twitter粉丝并将其与朋友进行比较

opH*_*AME 6 php twitter

我正在寻找可扩展的方法来执行以下操作:

  • 用户登录
  • 从Twitter获取所有好友
  • 从Twitter获取所有粉丝
  • 显示所有不是粉丝的朋友

问题:如何以可扩展的方式完成?用户最多可以拥有200万朋友或粉丝.目前我将它们存储在SQLite表中并通过循环进行比较.当用户返回时,表被清除并且进程再次开始.

这适用于100-1000个朋友..但是对于500000个朋友来说会很棘手.我无法缓存列表,因为它们可以随时改变.

有谁知道处理如此大量数据的好方法?

mcr*_*ley 0

我不知道你的数据库是什么样的,但这就是我的设置方式。

CREATE TABLE twitter_users (
    user_id INTEGER PRIMARY KEY NOT NULL,
    screen_name VARCHAR(20) NOT NULL
);

CREATE TABLE friends (
    friend_id INTEGER PRIMARY KEY NOT NULL
);

CREATE TABLE followers (
    follower_id INTEGER PRIMARY KEY NOT NULL
);
Run Code Online (Sandbox Code Playgroud)

然后你可以使用这个SQL来获取不是关注者的好友。

SELECT friend_id, screen_name
FROM friends
LEFT JOIN followers ON follower_id = friend_id
LEFT JOIN twitter_users ON user_id = friend_id
WHERE follower_id IS NULL
Run Code Online (Sandbox Code Playgroud)

如果屏幕名称为 ,NULL则表示它们不在您的twitter_users表中。您可以查找丢失的用户并将其存储以供以后使用。屏幕名称可能会更改,因此您可能需要定期更新该表。

使用Friends/idsfollower/ids API 一次获取 5,000 个好友和关注者 ID 列表。使用users/lookup API 获取最多 100 个屏幕名称。如果用户有 2,000,000 个朋友,则需要 400 个 api 调用才能获取 id 列表,因此您仍然应该至少为热门用户缓存该列表。