Java」タグアーカイブ

Twitter4jでOAuthを試してみた


Google App EngineのJava環境にTwitter用ライブラリ「Twitter4j」とWebアプリフレームワーク「Wicket」を載せていろいろ遊んでいるのですが、Twitterのユーザー名とパスワードをそのままDBに保持するのは気分が悪いということで、最近推奨されている「OAuth」に挑戦してみました。

基本的に参考にしたのはこちら。

OAuth 始めましたOAuthUpdate.java

やる事自体はそんなに難しいことではなく、

1)http://twitter.com/oauth_clients/newでアプリケーションを登録
→表示されるConsumer keyとConsumer secretの文字列を控えておく

2)Twitterオブジェクトを生成し、setOAuthConsumerメソッドでConsumer keyとConsumer secretを設定

3)Twitter#getRequestTokenメソッドでRequestTokenを生成。

4)RequestToken#getAuthorizationURLメソッドで取得した認証ページのURLにリダイレクト

5)認証ページで認証を許可したあと、RequestToken#getAccessTokenメソッドでAccessTokenを取得。このAccessTokenを保持する。

6)次回以降Twitterオブジェクトを使うときはsetAccessTokenメソッドでAccessTokenを設定する。

ほぼOAuthUpdate.javaでやっていることそのままです。注意が必要なのは、4)~5)で認証ページへリダイレクトして戻ってくるまでの間、何らかの方法でRequestTokenオブジェクトを保持しておく必要があることです。RequestTokenはいわば使い捨てで、認証ページから戻ってきた後にもう一度getRequestTokenメソッドで生成してもAccessTokenは取得出来ません(冷静に考えれば当たり前ですね)。私は4)で認証ページに飛ぶ前に、WicketのSessionの仕組みを使ってRequestTokenを保存するようにしました。

自分のWebアプリとTwitterの認証ページが連携して動く様はなんとも言えず面白いですね。これでユーザー名とパスワードをGAEに預けずにTwitterを使うことが出来ます。

Oracle×Sun


【速報】米Oracle、Sun Microsystemsを56億ドルで買収 (マイコミジャーナル)
【速報】オラクルが74億ドルでサンを買収 (@IT)

Sun買収にはIBMの名前が出ていましたが、最終的に条件が合ったのはOracleだったようです。

具体的な情報は何も出てきていないのですが、とりあえず気になるのはSunの製品群がOracleでどう扱われるかですね。SunといえばJavaですが、OracleはすでにJavaアプリケーションサーバのWebLogicを手中に収めているので、WebLogic強化のためにSunの技術を使っていくのでしょうか。

Sunが所有していたオープンソースDB「MySQL」の立ち位置は微妙なところです。MySQLは過去にOracleが買収を試みたことが知られており、今回OracleがSunを買収することで、結果的にMySQLはOracleの手に渡ることになります。MySQLとOracle DBは、コンセプトも想定規模もまったく異なっているのですみわけはできると思うのですが、Oracleがどう判断するか。MySQLは軽量高速なオープンソースDBとして人気が高いので、OracleがMySQLを「殺す」様なことだけは勘弁してほしいところです。

SunのUNIX「Solaris」の行方も気になるところ。OracleはLinuxにコミットしていますが、より大規模な運用に耐えられるUNIXであるところのSolarisはOracleにとっても魅力的なはず。Linuxなどに押されている印象のあるSolarisを、Oracleが強力にプッシュするのは十分ありえる感じです。

この買収により、シナジーを発揮できるかどうか。Oracleの舵取りが注目されます。