Twitterでフォローやフォロワーのidを取得する時の制約
Twitterのフォロー、フォロワーidの一覧取得にはAPIリクエスト 1回で最大5000ユーザー、さらに各API 15分につきリクエストが最大15回までという制限があるため、75000以上のフォロー・フォロワーの全てを取得しようとすると最低でも15分以上かかるという問題が存在します。
後日・あるいは暫く経ってから結果を通知するシステムであれば特に問題はありませんが、できるだけすぐに表示をさせたい場合は予め最大取得数を制限したいですね。(75000ユーザー取得すると数〜数十秒かかりますので、必要性が薄ければ尚更もっと制限したいところ)
では、どのようにすれば必要な数だけ取得できるか次で紹介します。
Ruby Twitter gemで必要な分だけフォロワーを取得する方法
取得する時に、以下のように”friend_ids.take(10)”といった形でtake(取得数)を付けるだけです。
例:
client = Twitter::REST::Client.new do |config| config.consumer_key = "YOUR_CONSUMER_KEY" config.consumer_secret = "YOUR_CONSUMER_SECRET" config.access_token = "YOUR_ACCESS_TOKEN" config.access_token_secret = "YOUR_ACCESS_SECRET" end #フォローしてる人のidを100人取得 a = client.friend_ids("調べたい人のscreen_nameまたはid").take(100) #フォロワーのidを100人取得 b = client.follower_ids("調べたい人のscreen_nameまたはid").take(100)
なお、これはuser_timelineなど他のAPIでも応用が効くようです。