お知らせ
この章で作成したガジェットをダウンロードするためにMicrosoftが運営していた「Windows Live Gallery」が、2011/10/1よりサービス停止となりました。本章で作成するアプリケーションは、開発環境で開発を行なこととアプリケーション環境にアップロードすることは可能です。しかし作成したガジェットをWindows Live Galleryに登録することはできません。ご注意ください。
この章は、Windows 7 / Vistaで用意されている「ガジェット」というアプリケーションをGoogle App Engineを使って作る方法について説明します。Webアプリケーション以外でもGoogle App Engineが使えるのがポイントです。また、サーバ側では、Amazon APIを呼び出して新刊情報を取得する方法や、メモリーキャッシュを使った処理の逐次処理方法などについて説明します。
Google App Engine : サーブレット&JSP |メモリーキャッシュ| URL フェッチ
その他 : Amazon Product Advertising API | JavaScript | jQuery |サイドバー ガジェット
http://freshpubbar.appspot.com/
http://gallery.live.com/liveItemDetail.aspx?li=c774ef7f-cebf-41b0-bfc9-5f1d0712d848&bt=1&pl=1
(サイトがサービス停止となりました)
アマゾンのAPIは2011/10/26より、リクエストにアソシエイトタグを付与しないとエラーを返すようになりました。そこで、AmazonHelper.javaクラスにこの仕様を追加します。
なお、アソシエイトタグは「Amazonアソシエイト(アフィリエイト)」で登録して入手してください。"XXXXXXXX-22"のようなIDになります。
AmazonHelper.java(抜粋)
/* APIにしている構成要素や条件を用意する */
private Map<String, String> prepareParameters() {
Map<String, String> params = new HashMap<String, String>();
params.put("Service", "AWSECommerceService");
params.put("Version", "2010-11-01");
params.put("Operation", "ItemSearch");
params.put("SearchIndex", "Books");
params.put("Sort", "daterank");
params.put("ResponseGroup", "ItemAttributes");
if (title != null && !"".equals(title)) {
params.put("Title", title);
}
if (author != null && !"".equals(author)) {
params.put("Author", author);
}
if (publisher != null && !"".equals(publisher)) {
params.put("Publisher", publisher);
}
params.put("AssociateTag", "XXXXXXXXXX-22"); /* アソシエイトタグを追加 */
return params;
}