はてなキーワード検索アプリ
2006年06月10日 プログラミングTIPS
はてなキーワードAPIの処理について
はてなキーワードAPIは、 HTTPGETに対してXMLで処理結果を返す、RESTAPI になっています。そのため、以下のようなURLでキーワードを取得することができます。
この前PHP4からPHP5にアップデートしたばかりなので、取得したXMLを処理するために、新機能のSimpleXMLを使って処理してみました。https://d.hatena.ne.jp/keyword?word=%e3%81%af%e3%81%a6%e3%81%aa&mode=rss&ie=utf8
例えば、以下のような感じでXMLの要素を配列に格納できるため、とても簡単です。
後は格納した配列を処理するだけで、簡単に表示することができます。$keyword = htmlspecialchars($_GET['keyword'],ENT_QUOTES); $file = "https://search.hatena.ne.jp/keyword?&word=".$keyword."&mode=rss2&ie=utf8&page=1"; $xml = simplexml_load_file($file);
PHP4の時に、SAXで一要素ずつ処理していたのと比べると、あまりの簡単さに驚いてしまいます。
はてなダイアリーキーワード連想語API
はてなダイアリーキーワード連想語APIは、はてなキーワードAPIとは違って、XML-RPC APIを用いたAPIになっています。そのため、以下のメソッド名、属性からキーワード連想語を取得することができます。
このXML-RPC APIの処理には、PEARのXML_RPCを利用して処理しました。uri:https://d.hatena.ne.jp/xmlrpc encoding:utf8 methodName:hatena.getSimilarWord
後は受信した連想語を処理していけば、連想語を表示することができます。require_once 'XML/RPC.php'; $client = new XML_RPC_client('/xmlrpc', 'd.hatena.ne.jp'); $params = new XML_RPC_Value( array( 'wordlist' => new XML_RPC_Value($keyword) ), 'struct' ); $message = new XML_RPC_Message('hatena.getSimilarWord', array($params)); $response = $client->send($message);
はてなのはてなダイアリーキーワード連想語APIのページには、PerlとRubyのサンプルしか載っていないので、PHP版は上記のような感じになります。
XML-RPCの処理は初めてのことですが、思っていたよりは簡単で安心しました。
でも、RESTでXMLを取得できるはてなキーワードAPIの方が個人的には簡単に思います。
そんなわけで完成したアプリは、
→はてなキーワード検索アプリ
になります。