お天気bot onTwitter
コピペしただけ。
おぉ。動いた。
下記ソースのTwitter4rのVersionとユーザ/パスを書き換えるぐらい。
<ソースweather.rb>
require('rubygems')
gem('twitter4r', '>=0.X.X') # Twitter4R version
require('twitter')
require 'net/http'
require 'rexml/document';
require 'kconv'
# set twitter account
account = {
'login' =>'xxx',
'password' =>'xxx',
}
# make twitter client
client = Twitter::Client.new(
:login => account['login'],
:password => account['password']
)
# get rss and update
req = Net::HTTP::Get.new('/forecast/rss/13/63.xml')
Net::HTTP.start('weather.livedoor.com') do |http|
res = http.request(req)
doc = REXML::Document.new(res.body)
doc.elements.each('rss/channel/item[2]/title') do |element|
client.status(:post, element.text)
puts element.text.tosjis
end
end
<実行結果>
C:\Documents and Settings\Administrator>weather.rb
[ 19日(金)の天気 ] 東京 - 晴時々曇 - 最高気温9℃ - 2月19日(金)
でもなぜコレが動くのに、こっちは動かないんだろうか?
同じライブラリ読み込んでるのに。
というかこっちのがソースは単純だし...
<ソース>
require 'net/http'req = Net::http::Get.new('/')
Net::http.start('twitter.com') do |http|
res = http.request(req)
puts res.body
end<実行結果>
C:\Documents and Settings\Administrator>twitter03.rb
C:/Documents and Settings/Administrator/twitter03.rb:8: undefined method `http' for Net:Module (NoMethodError)