oacurl で Twitter OAuth を使ってみた。

Google I/O 2010Google Buzz API が正式に発表されたと聞いて Buzz の API ドキュメントを眺めてたら、なにやら見慣れぬ oacurl ツールが使われているではないですか。(OACurl Cookbook

どうもこの oacurl、OAuth 対応の curl っぽいコマンドラインツールらしい。ということで、Buzz API はスルーして oacurl を触ってみることにしました。

oacurl のインストール

oacurlOACurl Cookbook でそれぞれ別のインストール方法が紹介されているので、どちらでも好きな方を選択します。以降は oacurl 本家サイトの方法でインストールしているという前提で話を進めます。

Twitter OAuth Consumer の設定

まずは Consumer 登録

なぜか callback_url=oob の場合 oacurl が java.lang.NullPointerException でエラーになるので、ここでは Application Type を Client ではなく Browser にしてください。oacurl はコマンドラインツールですが、callback_url=http://localhost:XXXX として callback を受け取ることもできます。

その後 Twitter 用のプロパティファイルを作成します。(~/.oacurl.twitter.properties)

requestTokenUrl=http://twitter.com/oauth/request_token
userAuthorizationUrl=http://twitter.com/oauth/authorize
accessTokenUrl=http://twitter.com/oauth/access_token

Twitter から Access Token を取得

このコマンドを実行すると、oacurl が Request Token を取得してブラウザで Authorization URL を開きます。

oacurl login --service-provider ~/.oacurl.twitter.properties --consumer-key YOUR_CONSUMER_KEY --consumer-secret YOUR_CONSUMER_SECRET

より詳細なログを見たければ、"--verbose" オプションを付けてください。(Log Sample)

Consumer Key & Secretが間違ってたら...

oacurl login -p .oacurl.twitter.properties --consumer-key invalid --consumer-secret invalid

ちゃんとエラーメッセージが表示されますね。

HTTP/1.1 401 Unauthorized
Date: Thu, 20 May 2010 02:35:38 GMT
Server: hi
Status: 401 Unauthorized
 :
Connection: close

Failed to validate oauth signature and token

Twitter API にアクセス

プロフィール情報を取得。

oacurl http://api.twitter.com/1/account/verify_credentials.json

POST は、うまく動かなかったです。。