Twitter(REST API)で相互フォローリストの取得方法

「Twitterで相互フォロワーリストは取得できるのか?」

ふと、こんな質問を受け、即レスできなかったので、調べてみました。

 

結論から言いますと、できます。(※ただ、上限もあります!!)

 

では、どうやって取得するか?

初めは、下記2つのapiを使用して、そこから共通のidの取得を試みた結果、

が、制限により200件×15回で、最大3,000件から共通のidを探すことになりました。

 

list.jsonを使ってみました

 

@フレンドリストを取得

https://api.twitter.com/1.1/friends/list.json

*app auth:15回/15分

*最大200件

 

@フォロワーリストを取得

https://api.twitter.com/1.1/followers/list.json

*app auth:30回/15分

*最大200件

 

■そこで、ids.jsonを使用します

下記2つのapiを使用することで、

5,000件×15回で、最大75,000件から共通のidを探すことができます。

 

@フレンドidを取得

https://api.twitter.com/1.1/friends/ids.json

*app auth:15回/15分

*最大5,000件

 

@フォロワーidを取得

https://api.twitter.com/1.1/followers/ids.json

*app auth:15回/15分

*最大5,000件

 

ただ、ここで問題なのが、

初めのlist.json(api)は詳細情報を取得するのに対し、

ids.json(api)は文字通りですが、idしか取得できません。

 

では、ユーザ情報を取得するには、どうしたら良いか、、?

 

っと、探してみた結果

こんな便利なapiがありました。

 

@ユーザ詳細情報を取得

https://api.twitter.com/1.1/users/lookup.json

*app auth:180回/15分

*最大100件

 

このapiは、idを「,(カンマ)」区切りで繋ぐと、

一度に最大100件まで、ユーザ情報を取得することができます。

180回/15分なので、最低2,700件は取得できるようになります。

  

ただ、闇雲に3,000件のリストからidを取得するよりも、

単純な処理となるので、メモリはそこまで食わないのでオススメです。

 

■付録

2つのid群より、共通のidを求めるのに便利なのが、

array_intersectになります、差分を求めるarray_diffとは対になる存在かと思います。

よかったら参考に使ってみてください。

※今回は手法のみで処理は割愛いたします。

●この記事を書いた人