yuyunko's blog

ぼうびろく

twitterのbot rubyで

twitterAPIを使って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


解決策はファイル名を変えること.