Ruby Twitter Gem -- 特定ユーザーがフォローしているユーザーの情報を100件以上集める方法
Twitter APIを使ってある特定ユーザーがフォローしているユーザーの情報を集める場合、
(ややこしいですね。。)
基本的に100件を超える取得は出来ないとあります。
https://dev.twitter.com/docs/api/1/get/users/lookup
個人的に開発しているアプリで100件を超えるユーザー情報を、
一度に取得したい場合が発生しました。
そこでロジックを少しばかり考えてみましたが、
以下のようにすれば取得は可能でした。
(コレが正しい方法なのか、如何せん現場でゴリゴリWebアプリとかを
作っているわけでは無いので、ご了承&ご指摘下さい。)
※Twitter Gemを使用しています。
1)irbを起動します。
2)Twitter Gemをrequireします。
require "twitter"
3)特定ユーザーの情報を取得します。※ユーザー名は任意で変更して下さい。
user = Twitter.user("XXXXX")
4)特定ユーザーがフォローしているユーザー数を取得します。
user_friends_count = user.friends_count
5)ハッシュ「friend_ids」に特定ユーザーがフォローしているユーザー情報を格納します。
friend_ids = Hash.new friend_ids = Twitter.friend_ids("XXXXX")
6)上記で取得したユーザー情報の中からユーザーIDのみを配列「ids」に格納します。
※ここはもっと奇麗なやり方あるんだろうなあと。
ids = Array.new ids = friend_ids["ids"]
7)最後に上記で取得したユーザーID分の情報を配列「users」に格納して行きます。
i = 0 users = Array.new cnt = user_friends_count / 100 cnt.times do |cnt| users.concat Twitter.users(ids[i..i + 99]) i = i + 100 end mod = (user_friends_count % 100) - 1 users.concat Twitter.users(ids[i..i + mod])
ここまでで、100件を超えるユーザー情報を取得出来たはずです。
あとは、配列「users」に格納された情報を自由にお使い下さい。