Google AppEngine と Jruby と Sinatra で Twitter 遊びをしようと思った
使ったライブラリはその名もTwitter(http://twitter.rubyforge.org/)。jruby-opensslを入れておけばエラーなく呼び出すことはできました。それで手始めにBASIC認証で適当につぶやいてみようと思ったのです。
httpauth = Twit|ter::HTTPAuth.new('user', 'pass') client = Twitter::Base.new(httpauth) client.update("test")
ところがエラーになります。
2010/03/15 13:49:50 org.apache.commons.httpclient.HttpMethodBase processResponseHeaders
警告: Cookie rejected: "$Version=0; _twitter_sess=BAh7CjoPY3JlYXRlZF9hdGwrCNNTFmInAToMY3NyZl9pZCIlYTAxZDRlN2Jk%250AMjg0ZWVkNmFkYzA2YmJlMmZjNmQ1ODg6B2lkIiUyMmZlMjdjMmJlYjE0NmI4%250AMzgxNzQxYTJiZTIxMDI1NiIKZmxhc2hJQzonQWN0aW9uQ29udHJvbGxlcjo6%250ARmxhc2g6OkZsYXNoSGFzaHsABjoKQHVzZWR7ADoRdHJhbnNfcHJvbXB0MA%253D%253D--82c5c0ff91328c46f2bfc2648b5221336d1b482f; $Path=/; $Domain=.twitter.com". Illegal domain attribute ".twitter.com". Domain of origin: "twitter.com"
なんかTwitterライブラリとは関係ないところでエラーになっているような…
そこでNet:HTTPで直接叩いてみました。
Net::HTTP.start('twitter.com') {|http| req = Net::HTTP::Get.new('/statuses/followers.xml') req.basic_auth 'user', 'pass' response = http.request(req) print response.body }
2010/03/15 15:09:19 org.apache.commons.httpclient.HttpMethodBase processResponseHeaders
警告: Cookie rejected: "$Version=0; _twitter_sess=BAh7CToPY3JlYXRlZF9hdGwrCCgXX2InAToHaWQiJWRmMzlhMDdjMjcwYzNj%250AOWI2NTFmZGEyOGZhNzYwZTJmIgpmbGFzaElDOidBY3Rpb25Db250cm9sbGVy%250AOjpGbGFzaDo6Rmxhc2hIYXNoewAGOgpAdXNlZHsAOhF0cmFuc19wcm9tcHQw--4e27a81219d81a79cfd3b88743fbdb577cf9af03; $Path=/; $Domain=.twitter.com". Illegal domain attribute ".twitter.com". Domain of origin: "twitter.com"
やはり同じエラーだ…
"Illegal domain attribute" っていったい…?
【追記】
これって 'twitter.com' というドメインが '.twitter.com' 用のクッキーを設定しようとしてるってエラーですかね。調査中…