Croudia APIをRubyから叩いてみよう!
国産ミニブログ CroudiaのAPIをRuby gemを使って叩いてみる。
Croudiaについてはこの記事参照。
先にCroudiaのアカウントとアプリケーショントークンを用意しておきましょう。(callbackはlocalhost等適当に)
今回はターミナルやDOSプロントを開いてコマンドラインからirbを使って作業していきます。
まず、Croudia gemをインストール。
$ gem install croudia
なお、この際devkitが入っていないとエラーが出る模様。WindowsでRuby installer使ってるならRuby installerのDLページから、Win,Linux等で他からDL,インストールした場合はDL元からdevkitを入手しセットアップしておく必要があるようです。(参考)
Macは特に何もしなくてもいける模様。(OSX 10.9 Ruby2.0で確認)
gemがインストール出来たらirb
を起動。
$ irb
まず、Croudia gemをインクルード
require "croudia"
croudiaオブジェクトを作ってやる
croudia = Croudia::Client.new(client_id:"ここにClient_id",client_secret:"ここにClient_secret")
認証URLを取得(実際にはこのURLはclient_idをテンプレに加えているだけ)
croudia.authorize_url
表示されたURLにブラウザからアクセス、認証。
リダイレクトしたらアドレスからcodeパラメーターをコピー。
token = croudia.get_access_token("(ここに取得したcode)")
tokenが取得出来たらセットしてcroudiaオブジェクトを作り直す。
croudia = Croudia::Client.new(token)
PublicTimelineを取得してみる
ptl = croudia.public_timeline
#Statusオブジェクト(#<Croudia::Status: xxxxxxx {...}>)のリストが返される
取得したTLのテキストとscreen_nameを出力してみたり
ptl.each do |s|
p "@#{s.user.screen_name} #{s.text}"
end
もちろんささやくことだって。
croudia.update("test Whisper")
あ、気づきました?パラメーターが省略記述できちゃうんです。Rdocを見れば省略できる部分は分かるでしょう。
tokenは1時間で切れる。
切れると Croudia::Error::Unauthorized
が返されるのでtokenと一緒に吐かれたrefresh_tokenを使ってトークンを更新する。
#client_id,secretを用意して
croudia = Croudia::Client.new(client_id:"ここにClient_id",client_secret:"ここにClient_secret")
# tokenを取得
new_access_token = croudia.get_access_token(
grant_type: :refresh_token,
refresh_token: token.refresh_token
)
#新しいトークンをセット
croudia = Croudia::Client.new(new_access_token)
#試しに認証チェック
croudia.verify_credentials
他にも画像アップロードとかも出来るみたい。
その他の使い方はrdocを参考に。