PHPでYahooAPIを使ってみます!
まずはYahoo知恵袋APIから質問本文とベストアンサーを取得するPHPサンプルコードです!
Yahoo知恵袋APIから質問本文とベストアンサーを取得する
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 |
<?php function get_yahoo_api_chiebukuro($query){ //$queryは検索キーワードです。 //Yahoo知恵袋APIから質問本文とベストアンサーを取得します。 $appid='ごにょごにょごにょ'; //appidはyahooAPIに登録すれば無料でもらえます。 header('Content-type:text/html;charset=UTF-8'); $xml_file='http://chiebukuro.yahooapis.jp/Chiebukuro/V1/questionSearch?appid='.$appid.'&query=' . $query; $xml=simplexml_load_file($xml_file,'SimpleXMLElement', LIBXML_NOCDATA); //$xmlにYahoo知恵袋APIから取得した情報が格納されています。 return $xml; } $query="API 使い方"; $yapi_xml=get_yahoo_api_chiebukuro($query); if(!empty($yapi_xml->Result->Question[0]->Content)){ foreach($yapi_xml->Result->Question as $question){ echo '<p class="yahoo-api-q">Q:'.$question->Content.'</p>'; echo '<p class="yahoo-api-a">A:'.$question->BestAnswer.'</p>'; } } ?> |
Yahoo知恵袋APIから質問本文とベストアンサーを取得する2
下記のようなコードでもOKです。こっちの方が汎用性が高くてオススメです。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 |
//自作エリア function get_yahoo_api_chiebukuro($api , $appid , $params){ /*********************************************************** * Yahoo知恵袋APIから質問本文とベストアンサーを取得します。 * $api = 'ここにはyahooAPIのリクエストURLが入ります'; * $appid = 'ここにはyahooAPIのアプリケーションIDが入ります'; * $paramsは下記のような配列です。 * queryは必須ですが、他は指定しなくても利用可能です。 * $params = array( * 'query'=>'ここには検索キーワードが入ります' , * 'categoryid' => 'ここにはカテゴリIDが入ります' , * 'condition' => 'ここには質問の状態が入ります(all , open ,vote , solvedのいずれか)', * 'type' => 'ここには検索方法が入ります(all , any , phraseのいずれか)', * ); ************************************************************/ $xml_file = "${api}?appid=${appid}&query=${params["query"]}&condition=${params["condition"]}&type=${params["type"]}&results=${params["results"]}&categoryid=${params["categoryid"]}"; $xml=simplexml_load_file($xml_file,'SimpleXMLElement', LIBXML_NOCDATA); //$xmlにYahoo知恵袋APIから取得した情報が格納されています。 return $xml; } |
ワードプレスで利用する場合には、functions.phpに上記をコピペします。
single.phpやcategory.php…etcに、以下のように書くと利用できます。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
<?php $api = 'http://chiebukuro.yahooapis.jp/Chiebukuro/V1/questionSearch'; $appid = 'YahooAPIのアプリケーションIDが入ります'; $params = array( 'query' => 'API 使い方' ); $yapi_xml=get_yahoo_api_chiebukuro($api , $appid , $params); if(!empty($yapi_xml->Result->Question[0]->Content)){ foreach($yapi_xml->Result->Question as $question){ echo '<p class="yahoo-api-q">Q:'.$question->Content.'</p>'; echo '<p class="yahoo-api-a">A:'.$question->BestAnswer.'</p>'; } } ?> |
キーフレーズ(キーワード)を抽出するAPI
Yahooのキーワード抽出APIを利用するとこんなことができます。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 |
//自作エリア function get_yahoo_api_extract($api , $appid , $params){ /*********************************************************** * Yahoo知恵袋APIから質問本文とベストアンサーを取得します。 * $api = 'ここにはyahooAPIのリクエストURLが入ります'; * $appid = 'ここにはyahooAPIのアプリケーションIDが入ります'; * $paramsは下記のような配列です。 * sentenceは必須ですが、他は指定しなくても利用可能です。 * $params = array( * 'sentence'=>'ここにはキーワードを抽出したい文章が入ります' , * 'output' => 'ここにはxml,jsonなどのレスポンスの形式を入力します' * ); ************************************************************/ $xml_file = "${api}?appid=${appid}&query=${params["query"]}&sentence=${params["sentence"]}"; $xml=simplexml_load_file($xml_file,'SimpleXMLElement', LIBXML_NOCDATA); //$xmlにYahooキーフレーズ抽出APIから取得した情報が格納されています。 return $xml; } |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 |
<?php $api = 'http://jlp.yahooapis.jp/KeyphraseService/V1/extract'; $appid = 'YahooAPIのアプリケーションIDが入ります'; $params=array( 'sentence' => "抽出したいコンテンツをここに入れてみてください。キーワードが抽出できます。" ); $yapi_xml=get_yahoo_api_extract($api , $appid , $params); if(!empty($yapi_xml->Result[0]->Keyphrase)){ echo '<ul>'; foreach($yapi_xml->Result as $res){ echo '<li>'.$res->Keyphrase.'</li>'; } echo '</ul>'; } ?> |
コメント