ちゃんと憶えてるうちに記録しとかないと。
にほとんど頼り切った。上のリンク先のものにこれに一行だけ加えたものが以下。
#! /usr/bin/ruby
# encoding: utf-8
require "time"
require "rubygems"
require 'twitter'
def fetch(instance, method, array_name, query)
next_cursor = -1
begin
query['cursor'] = next_cursor
instance.__send__(method, query).each{|a|
value = a.pop
key = a.pop
if key == array_name then
value.each{|v|
yield(v)
}
elsif key == "next_cursor" then
next_cursor = value.to_i
end
}
end while next_cursor > 0
end
# ログイン
Twitter.configure do |config|
config.consumer_key = '????????????????????????????'
config.consumer_secret = 'XXXXXXXXXXXXXXXXXXXxx'
config.oauth_token = 'PPPPPPPPPPPPPPPPPPP'
config.oauth_token_secret = 'TTTTTTTTTTTTTTTTTTTTTTTTTTTTTT'
end
# 自身のfollowersを全件取得して表示
puts "my followers"
fetch(Twitter, :followers, "users", {}) {|v|
puts "id: #{v.id}, screen_name: #{v.screen_name}"
Twitter.friendship_create(v.id) #←この部分を追加した
}
http://d.hatena.ne.jp/tondol/20100412/1271016565
のように、既にフォローしているフォロワーに対してフォローする動作を除いていないので、無駄が多い。
でも、まあ問題はないと思う。 問題発生。フォローしてる人に対してフォロー通知が何度も行ってしまう。これはTwitter自体のバグと言ってもいいくらいだけど,あまり早く対応されない気がするので,どうにか直したい。既にフォローした人のIDを記録しておいて,それをフォローする対象から除外するのがオーソドックスかな。だれかどうしたら良いか教えてください。
あと、上でReturnされる値の扱い方がわからないと書いたけど、これがわからないとこの先tweetを扱ったりするのに困るんだけどね・・・
written by OK
最終更新:2011年06月26日 09:36