twitterのbot rubyで
twitterのAPIを使ってbot作成をしようと.
Basic認証はもう使えなくなるのでOAuth認証を.
sudo gem install oauth
sudo gem install rubytter
この二つのrubygemsでほとんどできる.rubygem最高
# encoding: UTF-8 require 'rubygems' require 'oauth' # コンシューマキー CONSUMER_KEY = 'CONSUMER_KEY' # コンシューマシークレット CONSUMER_SECRET = 'CONSUMER_SECRET' consumer = OAuth::Consumer.new( CONSUMER_KEY, CONSUMER_SECRET, :site => "http://api.twitter.com" ) request_token = consumer.get_request_token puts "Access and approve => #{request_token.authorize_url}" print "oauth number: " oauth_number = gets.chomp.strip access_token = request_token.get_access_token(:oauth_verifier => oauth_number) # アクセストークン出力 puts "Access token: #{access_token.token}" # アクセスシークレット出力 puts "Access token secret: #{access_token.secret}"
上のでOAuth認証.
次にテスト投稿.
# encoding: UTF-8 require 'rubygems' require 'oauth' require 'rubytter' # コンシューマキー CONSUMER_KEY = 'CONSUMER_KEY' CONSUMER_SECRET = 'CONSUMER_SECRET' # アクセストークン ACCESS_TOKEN = 'ACCESS_TOKEN' ACCESS_TOKEN_SECRET = 'ACCESS_TOKEN_SECRET' consumer = OAuth::Consumer.new( CONSUMER_KEY, CONSUMER_SECRET, :site => 'http://api.twitter.com' ) access_token = OAuth::AccessToken.new( consumer, ACCESS_TOKEN, ACCESS_TOKEN_SECRET ) rubytter = OAuthRubytter.new(access_token) # test投稿 rubytter.update('日本語てすと')
最初,このプログラム達の名前自体を,oauth.rbとかrubytter.rbとかにしていて,requireがカレントディレクトリから読みにいくので
自分自身をロードしてしまうらしく,はまったorz
これに気づくまで1時間ほどw
解決策はファイル名を変えること.