OAuthメモ2 JRuby on GAE/J でOAuth
OAuthを使ってGoogle App Engine上のJRubyからtwitterにポストする。RubyのコードをベースにURLFetchを使うように書き換えていたが、うまくいかないので、あきらめてTwitter4Jをラップすることにした。簡単にできた。
require 'java' import 'twitter4j.TwitterFactory' import 'twitter4j.TwitterException' import 'twitter4j.http.AccessToken' class Twitter4j def initialize(consumer_key, consumer_secret, access_key, access_secret) factory = TwitterFactory.new @twitter = factory.get_oauth_authorized_instance( consumer_key, consumer_secret, AccessToken.new(access_key, access_secret)) end def post(text) begin @twitter.update_status(text) rescue TwitterException => ex c = ex.cause $servlet_context.log("Exception when posting '#{text}'") $servlet_context.log(c.get_message) raise "Post status failed : #{c.get_status_code}" end end end