じゃあ今回はActiveResourceでもやってみようかな。とは言っても僕も使ったことないので調べながらヨチヨチと
そもそもActiveResourceってなに?
READMEを和訳されてる方がいらっしゃったので拝読
Active ResourceのREADMEを翻訳してみました
なるほど、リモートにあるRESTリソースにマッピングね。
うん、よくわかんない
要は、RESTfulなAPIをActiveResourceで簡単に扱えますよ、ってことっぽい
まぁ、考えるより体で覚えろっていうじゃない。
とにかくやってみる
RESTfulなwebapiを提供しているサービスといえば、やっぱりtwitterが有名かな。toytterはtwitterもどきなわけだし、toytterで発言したら、twitterにも一緒に発言するようにしちゃおう
twitterの投稿APIも日本語訳を参考に
Twitter API 仕様書 (勝手に日本語訳シリーズ)
認証はベーシック認証らしいので、投稿用のAPIは次の様になる
http://(id):(pass)@twitter.com/statuses/update.(json|xml)
それに対応したActiveResourceなTwitterクラスはこんな感じ
class Twitter < ActiveResource::Base
USER = "hoge"
PASS = "pass"
self.site = "http://#{USER}:#{PASS}@twitter.com"
class Status < Twitter
end
end
ActiveResource::Baseを継承させて、APIのURLをself.siteに入れる。statusesは対象のリソース名?なので、ここで設定するurlは/statusesは入れない。
その代わりに、Twitter::Statusクラスを定義してあげればいい。
script/consoleから
> Twitter::Status.post(:update, :status => "activeresource test")
ってやるだけで、Twitterに投稿できる。
これをtoytterでの投稿時に呼ぶようにする。このままじゃ全てのtoytterユーザーが一つのtwitterアカウントで投稿することになるけど、そこはご愛嬌
toytterのuser_controller.rbのupdateメソッドのところに入れる
def update
Status.create :user_id => current_user.id,
:desc => params[:desc]
Twitter::Status.post(:update, :status => params[:desc])
redirect_to "/"
end
これでtoytter内で発言すると、twitterにも同じ内容が投稿されるようになりました。
超簡単
押忍
Techno Exchange
仮想化環境で求められるストレージの要件
ZDNet Japan ホスティング特集
セキュリティ対策レベルテスト公開!
Webセキュリティ特集
APC SOLUTIONS FORUM 2008をレポート
ZDNet Japan Green IT
DELLが掲げる「新・仮想化アセスメントサービス」
PRADA Phone開封の儀--iPhoneと比べてみました
iPhoneとPRADA Phone、入力インターフェースはどう違うか
毎日新聞社内で何が起きているのか(上)