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

8分21秒で分かるRubyとOAuthによるTwitterAPIの使い方(動画)

ruby twitter

TwitterAPIのBASIC認証は近々廃止され、今後はOAuth/xAuthにシフトされます。
混乱している開発者も多いと思うので、今回はOAuth対応なTwitterBotを作ることを前提にして、その簡単なやり方を動画に撮ってみました。スクリーンキャストというやつです。

動画の内容

  • Twitter Botをアプリケーションとしてtwitter.comに登録
  • Consumer Key, Consumer Secret を取得
  • Twitter BotアカウントのAccess Token, Access Secretを取得
  • RubyTwitter Botアカウントに発言させるプログラムを作成
  • 発言成功

補足:AccessToken発行に使用したスクリプト

動画の中で、AccessTokenの発行に、俺が書いたスクリプトを使っています。
これです。
http://gist.github.com/388067

require 'twitter_oauth'

print 'Consumer Key> '
consumer_key = gets.chomp

print 'Consumer Secret> '
consumer_secret = gets.chomp

t = TwitterOAuth::Client.new(
  :consumer_key => consumer_key,
  :consumer_secret => consumer_secret
)

req = t.request_token

puts 'OK'
puts "please access and get PIN: #{req.authorize_url}"
print 'PIN> '
pin = gets.to_i

acc = t.authorize(
  req.token,
  req.secret,
  :oauth_verifier => pin
)

puts "Authorized:    #{t.authorized?}"

puts "Access Token:  #{acc.token}"
puts "Access Secret: #{acc.secret}"

補足:セキュリティについて

動画中ではConsumer KeyとかAccess Tokenのセキュリティ的な意味合いについて説明していません。
動画中ではテスト用に登録したアプリケーションなので、漏れてしまっても問題ありませんでした(動画で作成したアプリケーションはもう削除していますし)。しかしこれは特別な場合だったためです。
詳しい説明は他の文献に任せますが、これらは本来公開してはいけません。

古い言い方に置き換えると、Consumer Key/Secretは「アプリケーションのパスワード」、Access Token/Secretは「(アプリに対する)Twitterアカウントのパスワード」と同じ意味を持ちます。ソースコードと一緒に公開しないように注意してください。
これらが漏れてしまうと、アカウントのなりすましが可能です。(ただし、これらだけではアカウント自体の乗っ取りは難しいでしょう)。

補足:ライブラリについて

今回は、twitter_oauth というgemライブラリを使っています。
このライブラリは、APIの網羅性が高く、頻繁にメンテナンスされており、今後に期待ができます。
いまRubyTwitter APIをさわるなら、個人的にはもっともオススメのライブラリです。
つい最近、Ruby1.9でも動くようになりました(oauth-0.4.0以降)。