今月の目標に上げていたにもかかわらず、全く手を付けていなかったのでそろそろ着手してみる。
開発言語は何でも良かったのですが、ちょうどRubyKaigiが開催中なので、ruby1.9.1でやってみます。
環境構築
とりあえず、rvmだけ入っている、まっさらな状態から始めます。
Twitterのoauthのところでopensslが必要なのでオプションを付けてrubyをインストールします。
rvm remove 1.9.1 rvm package install openssl rvm install 1.9.1 -C --with-openssl-dir=$HOME/.rvm/usr
rubyのインストールが終わったら、twitterモジュールをインストール。
いつもみたいに一から実装する面倒なことはしません。時間がないので。
rvm use 1.9.1 gem install twitter
アプリケーションの登録
TwitterでOAuth認証するにはアプリケーションをTwitterに登録する必要があります。
下記のリンクに飛んで、Consumer key とConsumer secretを取得してください。
Access Tokenの取得
それプラス、認証ユーザごとのAccess Tokenが必要なので下記のリンクにあるスクリプトを使用して取得してください。
Twitterから自分のタイムラインを取得してみる。
まずは自分のタイムラインを取得する簡単なスクリプトを仮実装してみます。
tw2ev/oauth.rb
Twitterの認証するモジュール
require 'twitter' # FIXME: プログラムに直接トークンをかくのはイケてない実装 APP_TOKEN = [ 'Consumer key', 'Consumer secret' ] USER_ATOKEN = [ 'Access key', 'Access secret' ] def authorize oauth = Twitter::OAuth.new(*APP_TOKEN) oauth.authorize_from_access(*USER_ATOKEN) return Twitter::Base.new(oauth) end
user-timeline.rb
第一引数にユーザ名を入れて実行するとそのユーザのタイムラインが取得できます。
ちょっとわかりにくいのでプロンプトに色づけしています。^[ は、Ctrl + v の後にEscを押すと出力されます。
require 'tw2ev/oauth' twitter = authorize twitter.user_timeline(:id => ARGV[0]).each { |status| puts '^[[38;5;45m* ' + status.id.to_s + ': ' + status.created_at + '^[[0m' puts status.text }
とりあえず、ここまで。これからどうやってEvernoteと連携するかの仕様を考えていきます。