タグ別アーカイブ: GAE/J

GAE/J用フレームワーク「Slim3」は速くて便利


Slim3
Slim3 日本語サイト(非公式)

「Slim3」は、Google App Engine/Java (GAE/J)用に最適化されたフレームワークです。MVCのフル機能を持っているほか、単純にDataStoreのフレームワークとして使用することも出来ます。今回は自分用に使っているケータイメールからTwitterにツイートするGAE/Jプログラムに、今まで使っていたJDOの代わりにSlim3を「DataStoreのフレームワークとして」導入してみました。

データ保存のフレームワークが変わるので、エンティティクラスは当然改造が必要になるのですが、記述方法が意外とJDOと似ているので、データ読み出しと書き込みのところだけSlim3に置き換えて、ツイート処理の本質的なところは変えずに導入することが出来ました。

Slim3導入の最大の効果は、なんといってもその速度。GAE/Jのアプリケーションはしばらく使っていないと停止してしまい、次の呼び出し時にスピンアップする挙動をしますが、このスピンアップの時間が影響して今まではタイムアウトが発生することがしばしば(作りが甘いのですがorz)。Slim3にしてこのタイムアウトが激減しました。

GAE/J案件に備えて「Slim3」というキーワードを知れたのは大きいかなと。

Twitter4Jの最新2.1.3は画像アップまでサポート


Twitter4J

TwitterAPIをJavaで簡易に呼び出せるようにするライブラリ「Twitter4J」ですが、最新版2.1.3からはなんと画像アップロード(TwitPicとYFrog)に対応しています。自分はケータイメールからTwitterへ投稿する自作プログラムをGoogle App Engine Java上に構築したことがあったのですが、その時はまだTwitter4JにこのAPIがなかったため、画像は別のライブラリを使ってFlickrにアップしていました。

今回はTwitPicに画像をアップするようにしてみました。コーディングは超単純。

ImageUpload.DEFAULT_TWITPIC_API_KEY = Const.DEFAULT_TWITPIC_API_KEY;
ImageUpload upload = ImageUpload.getTwitpicUploader(twitter);
pictureURL = upload.upload(fileName, inputStream);

twitterはTwitterクラスのオブジェクト、fileNameはファイル名、inputStreamは画像ファイルのストリームです。ImageUpload.DEFAULT_TWITPIC_API_KEYには、TwitPicのAPIキーを設定します(APIキーの取得はこのあたりを参考にしました)。このことに気づかず失敗したくらいで、あとは超スムーズにプログラミング完了。快適な自分専用のケータイメールTwitter投稿環境が手に入ってめでたしめでたし。