Yahoo画像検索のAPIで取得した画像が403で弾かれたけどなんとか対処出来たよという話

flickr searchって名前をつけてたものをveronia photo searchとして、flickr以外にも、Yahoo画像検索、Google画像検索、picasaフォト蔵はてなフォトライフzorg、その他いろいろマッシュアップしてます。あとGoogleを追加して完成としたいなあとおもてます。

で、大変だったのがYahoo画像検索のAPIで取得したオリジナル画像が直リンクだと403で弾かれてしまうこと。fc2やアメブロなどのブログ系はほとんど弾かれてしまいます。Lightboxでスライドショーしてるので、読み込めないと止まってしまって何ともブサイクなのです。

で、どうしたかというと、まず、別ファイルでhttpヘッダーを取得し、200だとオリジナル画像を表示し、それ以外の場合はサムネイルを読み込むようにしました。ちなみにレスポンスヘッダーの取得はPEARのHTTP_REQUESTを利用しました。タイムアウトとか、リダイレクトのありなしを設定できないと画像がアクセス不可でも403や404が帰ってくるので、便利です。というページをPHPでつくりましたが、Lightboxは画像ファイルじゃないとダメなのでひと工夫。Lightwindowならできますが画像形式でないとグループ化してスライドショーできないのです。というわけで.htaccessで画像ファイルに偽装したURLにしました。

サンプルコードも無しによくわからんとお思いでしょうが、無事できたことへの自己満足ということで。。