天気予報BOT作ってみた
なんとなく,Twitterで天気予報を発してくれたらいいな〜と思ったので,
勉強がてら勢いだけで取り組んでみた
軽く検索してみたところ,東京のものは既にあるみたいなのでリスペクトしてみる
Tokyo Forecast (tokyoforecast) | Twitter
なんとなくRubyでしてみようと思ったので,
RubyでRSSを取得するやTwitterにPOSTする方法とか調べてみた
RSSを扱う方法はこちらを参考に
http://doc.loveruby.net/refm/api/view/library/rss
Twitter関連はTwitter4Rを使うのがよさそうということで,色々参考に
http://twitter4r.rubyforge.org/
http://ontherails.jp/2007/7/18/9
まず,FreeBSDでTwitter4Rをインストール
$ cd /usr/ports/net/rubygem-twitter4r $ sudo make install clean
これでTwitter4Rが使えるようになる
そして実際に作ってみたしょぼいプログラムがこれ
require 'rss/2.0' require 'open-uri' require 'rubygems' gem('twitter4r', '0.3.0') require 'twitter' require 'pp' rss = nil url = rss_url # rssのURLを入力 今回はlivedoor天気を利用 begin rss = RSS::Parser.parse(url) rescue RSS::InvalidRSSError rss = RSS::Parser.parse(url, false) end desc = rss.channel.item(1).description link = rss.channel.item(1).link msg = desc + " " + link client = Twitter::Client.new(:login => username, :password => password) p client.authenticate?(username, password) p status = client.status(:post, msg)
RSS操作って全然操作したことなかったけど,結構簡単にできるもんやねんな〜
ライブラリ偉大やね!
後はcronにでも仕込んでおけばOK!
作ってて少しはまったのは,
TwitterのAPIが同じPOSTをはじいているらしく,
そのことがわかるまでPOSTできてないな〜と思ってたこと
要注意だ…