ActiveResourceを使ってTwitterに投稿する
RESTの恐ろしさを味わうがいい!(いまさら)
class Twitter < ActiveResource::Base self.site = "http://www.twitter.com/" self.logger = Logger.new($stdout) class Status < Twitter def self.comment(user, pass, msg) self.user = user self.password = pass self.post(:update, :status => msg) end end end
script/consoleから
>> Twitter::Status.comment(<username>, <password>, "thisistest") POST http://www.twitter.com:80/statuses/update.xml?status=thisistest --> 200 OK (892b 0.50s) => #<Net::HTTPOK 200 OK readbody=true>
Basic認証する場合、よく下記のように書いてあるサンプルを見かけるけど、これだとそれぞれのユーザごとに処理をさせられない。
self.site = "http://#{USER}:#{PASS}@twitter.com"
ActiveResourceのソースを見たら「user=」や「password=」メソッドがあったりするので、普通にユーザ・パスワード指定して認証できるねってことらしい。
>> Twitter.user="username" >> Twitter.password="password" >> Twitter::Status.post(:update, :status => "thisistest") POST http://www.twitter.com:80/statuses/update.xml?status=thisistest --> 200 OK (892b 0.50s) => #<Net::HTTPOK 200 OK readbody=true>
もちろんこれもOK.