2010-05-05
8分21秒で分かるRubyとOAuthによるTwitterAPIの使い方(動画)
TwitterAPIのBASIC認証は近々廃止され、今後はOAuth/xAuthにシフトされます。
混乱している開発者も多いと思うので、今回はOAuth対応なTwitterBotを作ることを前提にして、その簡単なやり方を動画に撮ってみました。スクリーンキャストというやつです。
動画の内容
- Twitter Botをアプリケーションとしてtwitter.comに登録
- Consumer Key, Consumer Secret を取得
- Twitter BotアカウントのAccess Token, Access Secretを取得
- RubyでTwitter Botアカウントに発言させるプログラムを作成
- 発言成功
補足:AccessToken発行に使用したスクリプト
動画の中で、AccessTokenの発行に、俺が書いたスクリプトを使っています。
これです。
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の網羅性が高く、頻繁にメンテナンスされており、今後に期待ができます。
いまRubyでTwitter APIをさわるなら、個人的にはもっともオススメのライブラリです。
つい最近、Ruby1.9でも動くようになりました(oauth-0.4.0以降)。
- 1043 http://makimoto.posterous.com/19469325
- 598 http://ido.nu/kuma/2010/05/04/stop-laughing-at-flash/
- 586 http://b.hatena.ne.jp/hotentry
- 512 http://twitter.com/
- 478 http://reader.livedoor.com/reader/
- 442 http://b.hatena.ne.jp/hotentry/it
- 215 http://www.google.co.jp/reader/view/
- 203 http://d.hatena.ne.jp/
- 197 http://pipes.yahoo.com/pipes/pipe.info?_id=faa858a20082ef6d25ad27557e37e011
- 192 http://www.google.com/reader/view/