Amazonのフィギュア画像をスライドショーしようと思ったのだが・・・。
この間HSP+HSPLetでで作ったウェブアルバムみたいなものを元に、アマゾンのECS連携してフィギュアの画像を延々スライドショーするウェブアプリを作ってみた。つまり、HSP+HSPLet+Amazon ECS+CGI構成でのウェブアプリケーションになるはずだった。作成理由は、単純にフィギュアの画像をスライドショウすれば見ていて面白いだろうと思ったからだ。実際HSPの段階ではそれなりに面白いものが出来上がった。しかし、いろいろ問題があったので、HSP+HSPLetでなにかWEBアプリケーションを作成しようと思ってる人の参考になればと思いここに記録を残しておきます。
タイトル画面、クリックすると画像選択画面に行きます。
あらかじめ、ECSから10件分の情報を取得します。このとき、画像枚数は単純に10枚ではなく「10件」x「アイテムごとの画像がある枚数」になります。
サムネイルをクリックすると元画像を表示します。この時amazonのバナークリックで該当アイテムのamazonのページに飛ぶことができるはずでした。しかしながら、HSPでは長いURLを単純にexecコマンドでブラウザに渡して開くことができず、困ったことになった。amazon ECSの機能を利用させていただく以上amazonのページに誘導できるようにしなければ規約違反になるはずなのでまずい。amazon的には機能だけを利用されるのはよろしくないのだ。しょうがないので、ECSからはアイテムのページのURLをもらうのではなくASINをもらうようにして、下のURLの様にAMA-TOOL-BOXのページを経由してAmazonに移動できるようにした。
http://faiz.x0.com/move.cgi?ASIN=B001AE231E
Windows独自の機能(COM)等を利用すれば長いURL等も可能だが、HSPLetでJavaアプレット化することを考えるとHSP自体に内蔵している機能以外は使えないので、だめなのである。
鏡音レン
元画像表示時にマウスを画面上に持っていくと、スライドショウのメニューが表示される。三角のプレイボタンを押すとスライドショウが始まる。■ボタンでスライドショウが止まるようになっている。
スライドショウを実行したままにしておくと、データがなくなると次のデータをECS経由でAmazonから引っ張ってくる。上の画像の右にある四角の個数はページ数を表している、点滅している四角は、現在のページをあらわす。最初の3ページ分からかなり増えたところ。単純に20ページx20枚スライドショウしたことになる。
こういうカッコいいフィギュアがあったりする。
かわいいの、きれいなの、カッコいいの、そしてエロイの(*´ェ`*)ポッがあって見ていて飽きない。
そういうわけで、HSP上ではアプリケーションぽくなったのです。そしてHSPLetによるJavaアプレット化ですが、無理でした。(゚口゚;)
まーHSPLetではよくあることなので、トラブル事は予想していましたが、いくつか問題が発生したのでメモ。あらかじめの調査は重要ですね。趣味だからいいけど、仕事だと致命的。まーそれが実際の現場で多々発生したりするから面白いのですがw。(おもしろくねー)
・HSPSOCKによるソケット通信でhttpプロトコルによる通信をしてAmazon ECSからのデータを整形した形でもらいっていますが、アプレット化するとこの通信がsockgetと一緒に使っているsockcheckでエラーが出るんですね。sockcheckの結果を無視することで回避することはできましたが、HSPと挙動が違うというか、昔作ったアプリは大丈夫だったような気がするが、HSPLetはもう開発がストップしているのとHSPがバージョンアップしていることなどで不整合があるのか、回線が光になったことによるものか、俺のプログラムがヘボイのかは不明。
・HSPSOCKによるソケット通信で、ECSから取得した画像のURLを使って直接Amazonからメモリー上にダウンロードして描画を行っていますが、賢明な方ならお気づきの通り、javaアプレットやFlash等は自分自身がおいてあるサーバー以外の外部サーバーと通信することができません。肝心なことを忘れていましたwwww。もうね、バカかとアホかとw。
・上記はローカルサーバーにCGIがECSからデータを取得する時点でキャッシュするようにすれば回避可能なので、そうしようかと思ったのですが、CGIで画像をキャッシュするようにしてしまうと、開発環境とターゲットの環境が異なってしまうのでデバッグをいちいち実環境でやらなければならなくなって面倒。
・そして、一番の問題はexecコマンドが動作しないことがわかったことw。これではAmazonに誘導できないので規約的にまずい。アプレットの下にAmazonのリンクを張ることで、回避できると思うが、ここのアイテムのページにいけないのは、スマートじゃない。かこわるい(´・ω・`)
2008.12.21修正
HSPLet付属のletutil.hspを使って
showPage “https://blog.kumacchi.com/”,”_top”
等とするのが正解である。但し_blankは最近のブラウザではポップアップブロックされてしまうのであまり実用的ではない。Firefoxの場合だとサイレントにブロックされるので気づかない。
●結論
いつもHSPLetとHSPで何か作ろうとすると肝心なところでトラブル。いつも書いているような気がするが、JavaかFlashを覚えた方が早道。
HSP+HSPLetでは簡単なものを作るのにとどめた方がよい。
そういうわけで今回作ったプログラムはボツりました。
Flash勉強して出直してきます。
今回のは、俺様専用にしてローカルアプリケーションとして使います。
exeファイルで配布するという方法もあるのですが、ブラウザで動くから面白いのにexeじゃねー(´・ω・`)
AJAXというアプローチの方法もあるのだろうか?