楽天APIを少し・・・(XMLを配列に)
久しぶりに楽天のAPIをさわってみた。
どうやら、とうとうコンテンツマッチな広告が出せるようになった模様。コンテンツマッチ広告自体は通常の(google等と同様に)JavaScriptを貼り付けるタイプなのだが、これがAPIとしても提供されている。具体的には、APIからRESTでリクエストを送る際に、マッチさせたいページのURLを引数として渡すというもの(ちょっと目からうろこ)。
ただページ内容との一致具合はイマイチ。どうやらページ内のh1タグ(もしくはタイトル?)のみ重要視しているような感じ。本文にはあまりマッチしていないのだ。もうちょっと改善の余地ありだ。少し期待。
RESTで返される形式はXMLとJSON、希望の形式を選ぶことが出来るが、ここではXMLで受け取ることにした。処理をする場合、まずXMLを配列に落とし込むわけだが、以前紹介したxml_parse_into_struct関数を使うのもいいのだが、今回は別の方法を試した。といっても自分でゴリゴリスクリプトを書くのがいやなので、「PHP Classes」をあさってみた。あっさり希望のクラスを見つけた。
DOMXMLが使える環境にないといけないのだが、これすごい簡単!。
$obj=new xml2array($rakutenXML);
$xmlArray=$obj->getResult();
XMLデータを引数に与えてオブジェクトを生成するだけ。後はgetResultメソッドで配列に取り出すだけ。面倒な処理を一切必要とせず、XMLを配列に格納してくれる。ファイル構成もいたってシンプル。ファイルは「class.xml2array.php」を1つだけでいい。逆に配列からXMLを生成する場合は「class.array2xml.php」。
きっとDOMXMLが使えなくても、こんなふうにお手軽にしてくれるクラスがあるはずと思うので、時間が出来たらまた探してみることにする。
2007/09/11 at 11:43 PM
APIとPHPのまとめ
最近はYahooやAmazon、楽天といった各種ウェブサービス(API)を絡めた開発を多くやっている(といっても、仕事が暇なので自分用サイトとかアフィリエイト用サイトを数多く作っているのだが・・・)。またAPIを提供する会社もたくさん増えてきたので、これから本業でも