自動フォロー返し(Ruby bot)

改訂版をつくった。ー>自動フォロー返し(Ruby bot)2

ちゃんと憶えてるうちに記録しとかないと。


があまり詳しくない(Returnされてくる値の扱い方を教えてくれない、follower_ids.idsなどという使い方もあるのに何も書かれていない)ので


にほとんど頼り切った。上のリンク先のものにこれに一行だけ加えたものが以下。

  1. #! /usr/bin/ruby
  2. # encoding: utf-8
  3.  
  4. require "time"
  5. require "rubygems"
  6. require 'twitter'
  7.  
  8. def fetch(instance, method, array_name, query)
  9. next_cursor = -1
  10. begin
  11. query['cursor'] = next_cursor
  12. instance.__send__(method, query).each{|a|
  13. value = a.pop
  14. key = a.pop
  15. if key == array_name then
  16. value.each{|v|
  17. yield(v)
  18. }
  19. elsif key == "next_cursor" then
  20. next_cursor = value.to_i
  21. end
  22. }
  23. end while next_cursor > 0
  24. end
  25.  
  26. # ログイン
  27. Twitter.configure do |config|
  28. config.consumer_key = '????????????????????????????'
  29. config.consumer_secret = 'XXXXXXXXXXXXXXXXXXXxx'
  30. config.oauth_token = 'PPPPPPPPPPPPPPPPPPP'
  31. config.oauth_token_secret = 'TTTTTTTTTTTTTTTTTTTTTTTTTTTTTT'
  32. end
  33.  
  34. # 自身のfollowersを全件取得して表示
  35. puts "my followers"
  36. fetch(Twitter, :followers, "users", {}) {|v|
  37. puts "id: #{v.id}, screen_name: #{v.screen_name}"
  38. Twitter.friendship_create(v.id) #←この部分を追加した
  39. }
  40.  

http://d.hatena.ne.jp/tondol/20100412/1271016565
のように、既にフォローしているフォロワーに対してフォローする動作を除いていないので、無駄が多い。でも、まあ問題はないと思う。 問題発生。フォローしてる人に対してフォロー通知が何度も行ってしまう。これはTwitter自体のバグと言ってもいいくらいだけど,あまり早く対応されない気がするので,どうにか直したい。既にフォローした人のIDを記録しておいて,それをフォローする対象から除外するのがオーソドックスかな。だれかどうしたら良いか教えてください。
あと、上でReturnされる値の扱い方がわからないと書いたけど、これがわからないとこの先tweetを扱ったりするのに困るんだけどね・・・

さらに追記。フォロワーの取得にはログインは不要なので、
http://netzakki.seesaa.net/article/128216734.html
とかでもできそうだった。

written by OK

タグ:

Ruby bot OK
最終更新:2011年06月26日 09:36