cursor=-1 または cursor=カーソル位置 (オプション) 指定した(データベースの)カーソル位置以降の friend の一覧を100人分取得する -1 を指定した場合、先頭からの100人分を取得する。 応答本体に next_cursor がある場合は、「次のページ」(のカーソル位置)、 previous_cursor がある場合は、 「前のページ」(のカーソル位置)がそれぞれ存在することを示す。 本APIの次回実行時に、この next_cursor や previous_cursor の 示すカーソル位置を使用することで、friend の一覧の「次のページ」や 「前のページ」相当分(100人分)を取得することができる。 例: http://api.twitter.com/1/statuses/friends/barackobama.xml?cursor=-1 ユーザ名 barackobama の friend の一覧を先頭から100人分取得する http://api.twitter.com/1/statuses/friends/barackobama.xml?cursor=1300794057949944903 ユーザ名 barackobama の friend の一覧をカーソル位置 1300794057949944903 から 100人分取得するTwitter API 仕様書
ページめくりする場合のオプション。
何も考えず、friends API を使う場合
config = {・・・} consumer = OAuth::Consumer.new( config[:consumer_key] , config[:consumer_secret] , :site => 'https://api.twitter.com' , ) access_token = OAuth::AccessToken.new( consumer , config[:access_token] , config[:access_token_secret] ) client = OAuthRubytter.new(access_token) client.friends("basyura").each do |user| puts user.screen_name end
先頭の 100 件しか取れない。
cursor を使って全件取得する場合
cursor = -1 while cursor != 0 ret = client.friends("basyura" , {:cursor => cursor}) ret.users.each do |user| puts user.screen_name end cursor = ret.next_cursor end
cursor を指定すると next_cursor が取れるようになる。next_cursor が 0 になるまで取得し続けると全件とれる。
けど、レスポンスのオブジェクトがちょっと変わる。