2008-11-26 22:48:53
iGoogleにはいろいろなガジェットを埋め込むことができて、ニュースもいくつか埋め込んで利用している。Google Newsで検索をすると、一番下に、Google Gadgetにして埋め込むなんていうリンクができていることがある。いつも見るわけではないので、どういう仕組みになっているのかよく判らないが、これは便利だと思って早速埋め込んでみたのだが、下のように何も表示してくれない。
仕方がない、こうなったら自分で作ることにしよう。ということで、「書籍」で検索したGoogle Newsの結果を新しい順に表示して、Google Gadgetにしてみよう。PHPでこんなスクリプトを書いてみた(\\は本来存在しない改行が入っている箇所である)。
<?php $url = "http://ajax.googleapis.com/ajax/services/search/news?\\ v=1.0&q=%E6%9B%B8%E7%B1%8D&hl=ja&scoring=d"; $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, $url); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); curl_setopt($ch, CURLOPT_REFERER, "http://nakano.no-ip.org/index.html"); $body = curl_exec($ch); curl_close($ch); $json = json_decode($body); $xml = "<?xml version=\"1.0\" encoding=\"UTF-8\" ?>\n<Module>\n\\ <ModulePrefs title=\"Google News 書籍\" height=\"150\" />\n\\ <Content type=\"html\">\n<![CDATA[\n"; foreach($json->responseData->results as $item){ $url = $item->signedRedirectUrl; $title = $item->title; $publisher = $item->publisher; $xml .= "<a href='".$url."' target='_blank'>".$title."</a>\n"; $xml .= "<font color='#6f6f6f' size='-1'>【".$publisher."】</font><br />\n"; } $xml .= "]]>\n</Content>\n</Module>\n"; echo $xml; ?>
これをPHPを動かせるサーバに置いて、iGoogleにGadgetとして埋め込むと、こんなふうになる。
大成功かと思いきや、いつ見てもこの表示なのである。全然最新情報を教えてくれないのだ。違う名前で登録し直すと新しい表示になるが、また延々とその情報だけを表示し続ける。Cacheを読み直すらしい。これを30分おきに更新とかできないのか。面倒臭くなってきた。何もiGoogleに埋め込む必要もないだろう。RSSフィーダでもいいんじゃないのか。そんな気がしてきた。iGoogle Gadgetはまた別のものを作ってみようじゃないか。