読者です 読者をやめる 読者になる 読者になる

Λάδι Βιώσας

http://profile.hatena.ne.jp/kenkitii/

twitter bot 認証用スクリプト

ruby

年の瀬もせまり何かと忙しい時期だと思いますが、なぜか急にツイッターボットを書きたくなりました。調べたら昔と違ってあれこれ面倒だったので備忘録をかねてメモ書きしておきます。

準備

oauth と twitter を使うので入ってない場合は、gem install oauth twitter して入れておきます。

次にここからボット用アプリケーションの登録をします。

必要事項を入力し↑[Create your Twitter application]ボタンをクリックします。無事に登録できたら[Setting]タブを開き

[Application Type] のところを Read and Write に変更し↑設定を保存します。ついでに、アプリケーションアイコン画像を自分のお気に入りの画像に設定しておきましょう。[Detail]タブの Access level が Read and write になってるのを確認し、Consumer Key、Consumer secret を表示させておきます。

bot アプリの認証作業

以下のやっつけスクリプトを実行します。

# -*- coding: utf-8 -*-
require 'rubygems'
require 'oauth'

print "Input ConsumerKey :"
ConsumerKey = STDIN.gets.chomp
print "Input ConsumerKeySecret :"
ConsumerKeySecret = STDIN.gets.chomp

consumer = OAuth::Consumer.new(ConsumerKey, ConsumerKeySecret, :site => "http://twitter.com")
request_token = consumer.get_request_token
system("open #{request_token.authorize_url}")

print "Input PIN-CODE :"
pincode = STDIN.gets.chomp
access_token = request_token.get_access_token(:oauth_verifier => pincode)

puts <<EOF
# -*- coding: utf-8 -*-
require 'rubygems'
require 'twitter'
 
Twitter.configure do |config|
  config.consumer_key       = "#{ConsumerKey}"
  config.consumer_secret    = "#{ConsumerKeySecret}"
  config.oauth_token        = "#{access_token.token}"
  config.oauth_token_secret = "#{access_token.secret}"
end
 
Twitter.update("ツイッターへの投稿テストなう〜")
EOF

スクリプトを実行すると、Consumer Key と Consumer secret を求められるので入力すると PINコードの入力待ちになり、ブラウザで認証画面が開きます↓

認証ボタンを押すとブラウザに PINコード が表示され、その PINコードを入力すると、サンプルコードが表示されますので、適当なファイルにコピペして実行してみましょう。「ツイッターへの投稿テストなう〜」とつぶやくはずです↓

実行結果

どうぞごりようください!