タグ別アーカイブ: bot

rubyでtwitterbotを作ってみる その2 自動follow返し

前回 今回はfollowしてくれてる人に自動でfollow返しをする関数を作ります。 自分がfollowしてる人とfollowされてる人の配列を作って 引くとfollow返しすべき人の配列が出来ます。 今回はボット用なので、 自分がfollowしてる数 < followされてる数 の場合しか考慮してません -- # 自動follow返し def auto_follow(base) # friendsを取得 friends = Array.new base.friends.each{ |f| friends << f.id } # followersを取得 followers = Array.new base.followers.each{ |f| followers << f.id } # friendsとfollowersの差を取ってfollow返し targets = Array.new targets = followers - friends targets.each{ |id| base.friendship_create(id, true) } end -- 配列 - 配列をしたらかぶってないのが残るというrubyさんの賢さに感動したんだけど 最近の言語って皆こんなに賢いの?

rubyでtwitterbotを作ってみる

rubyでtwitterのbotを作ってみます。 まずはrubyでtwitterのAPIを叩くところまで。 rubyにはRuby Twitter Gemという便利なものがあるのでそれを使います。 portsからgemsを入れる。 # cd /usr/ports/devel/ruby-gems # make install clean twitter gemを入れる。 # gem install twitter 準備完了。 ひとまずネット上のサンプルを参考に作ってたら `initialize': wrong number of arguments (2 for 1)とかいうエラーが出た。 base = Twitter::Base.new('username', 'password') の引数の数があってないとか。 で、調べてみるとこのやり方は昔ので、最近のバージョンでは一度HTTPAuthに通してからするようになっている。 httpauth = Twitter::HTTPAuth.new('username', 'password') base = Twitter::Base.new(httpauth) 参考 でこれが作ってみたサンプルコード。 ---- #!/usr/bin/ruby require 'rubygems' gem 'twitter' require 'twitter' message = "ほげほげ" httpauth = Twitter::HTTPAuth.new('account', 'password') base = Twitter::Base.new(httpauth) # つぶやく base.update(message) # タイムラインを表示 puts "Friends Timeline", "=" * 50 base.friends_timeline.each { |tweet| puts tweet.text } ---- とてもシンプル! rubyでtwitterbotを作ってみる その2 自動follow返し