カテゴリー別アーカイブ: twitter

twitterにつぶやく植物を作りました

twitterにつぶやくヒヤシンスを作りました。 すくすく芽々 (sukusuku_meme) on Twitter sukusuke_meme こんな感じです。 普段はヒトリゴトを、 水が足りなくなると僕のアカウント宛に 「@happy_meme 水が足りないでやんす」 とか言います。 語尾がヤンスなのはヒヤシンスだからです。 水が足りないかどうかの判断は、 ピアノ線(導電体ならなんでも良い)を2本土にぶっ刺して 電気の流れ具合をarduinoのアナログ入力から測定してます(乾燥すると電気が流れにくくなる)。 twitterbot 芸術的な概略図 Ethernet Shieldを使うことでarduinoから直接twitter APIにアクセスしてます。 実物はこんな感じ。 中身 これで水やりを忘れることもなくなるはず! 参考にさせていただいたページ スタパ齋藤の「週刊スタパトロニクスmobile」 Arduinoでマイコンしよう!! 建築発明工作ゼミ2008: Arduino Ethernet Shield ArduinoからTwitterにPOSTするライブラリ - Okiraku Programming Less To It Than That: Arduino をはじめてみた (4) アナログ入力・アナログ出力 スイッチサイエンス/商品詳細 Arduino Duemilanove 328 (最も標準的なArduino) スイッチサイエンス/商品詳細 Arduinoイーサネットシールド

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返し