PHPでYahoo!知恵袋APIを叩く

2011-08-10
このエントリーをはてなブックマークに追加

なんの脈絡もなくPHPで、しかもYahoo!のAPIなんですけど、知人と話しているときにふとそんな話になりまして。以前RubyやPythonでYahoo!の形態素解析API叩いたことはあったんですけど、PHPで、しかもYahoo!知恵袋APIってなかったなーと思って書いてみました。

結論、超簡単。自分の慣れもあるんだろうけど、一番あっさりかけた。Rubyで書いたときはその時使ったXMLパーサの仕様だったと思うのですがxmlnsの扱いにひどく手間取った記憶があります。

が、PHPの場合XML文書をオブジェクトに変換してくれる便利な関数があったので一発で完了。正直、拍子抜けなレベルでした。

<?
$req = “http://chiebukuro.yahooapis.jp/Chiebukuro/V1/questionSearch?appid=「自分で取得するアプリID」&query=”.urlencode(‘焼肉’);
$xml = simplexml_load_file($req);

foreach($xml->Result->Question as $item){
echo “質問:”.$item->Content.”rn”;
echo “質問ID:”.$item->Id.”rn”;
echo “ベストアンサー:”.$item->BestAnswer.”rnrn”;
}
?>

これだけで「焼肉」で検索して質問と質問IDとベストアンサーを取得できます。まぁ参照だけならこんなもんですよね。

API経由で質問したり回答したりもできるんですけど、その場合はOAuthでの認証が必要みたいですね。まぁOAuthなんてTwitterAPI叩いたことある人なら楽勝でしょ。

PHPはささっと書けてささっと動いてくれるので好きです。いいフレームワークがあればPHPをメインにしてもいいかと思うくらい。

うーん、PHP用のマイクロフレームワーク、作っちゃおうかなぁ。

Tags: