5
5

More than 5 years have passed since last update.

Croudia Rubygem でCroudia APIを使ってみよう!

Posted at

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をインクルード

irb
require "croudia"

croudiaオブジェクトを作ってやる

irb
croudia = Croudia::Client.new(client_id:"ここにClient_id",client_secret:"ここにClient_secret")

認証URLを取得(実際にはこのURLはclient_idをテンプレに加えているだけ)

irb
croudia.authorize_url

表示されたURLにブラウザからアクセス、認証。
リダイレクトしたらアドレスからcodeパラメーターをコピー。

irb
token = croudia.get_access_token("(ここに取得したcode)")

tokenが取得出来たらセットしてcroudiaオブジェクトを作り直す。

irb
croudia = Croudia::Client.new(token)

PublicTimelineを取得してみる

irb
ptl = croudia.public_timeline
#Statusオブジェクト(#<Croudia::Status: xxxxxxx {...}>)のリストが返される

取得したTLのテキストとscreen_nameを出力してみたり

irb
 ptl.each do |s|
 p "@#{s.user.screen_name} #{s.text}"
 end

もちろんささやくことだって。

irb
croudia.update("test Whisper")

あ、気づきました?パラメーターが省略記述できちゃうんです。Rdocを見れば省略できる部分は分かるでしょう。


tokenは1時間で切れる。
切れると Croudia::Error::Unauthorized が返されるのでtokenと一緒に吐かれたrefresh_tokenを使ってトークンを更新する。

irb
#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を参考に。

5
5
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
5
5