リクルートAPIを利用して、カーセンサーの物件情報をWordPressで表示する。

岐阜市 STYLE-D 地域活性化と笑顔のために

カーセンサーが提供している外部APIの情報をWordpressで出力する方法を忘れないうちにメモしておきます。

APIキーの取得方法

リクルートWebサービスより、APIキーを取得します。
https://webservice.recruit.co.jp/
新規登録からメールアドレスを入力すると、
指定のメールアドレスに自分のAPIキーが受信されます。

APIキーの設定方法

  1. 中古車検索APIを利用して、1つの中古車情報を取得してみます。
  2. http://webservice.recruit.co.jp/carsensor/usedcar/v1/?key=[自身のAPIキー]&id=[物件id]

  3. 外部APIの取り込み
  4. 外部APIをWordpressで取り込む場合、wp_remote_getを使用します。

  5. データの取得
  6. wp_remote_getで取得した情報より、データを取得する場合はwp_remote_retrieve_bodyを使用。

  7. XMLから展開
  8. SimpleXMLElementを使用して、XMLデータをWordpressで処理できる形に変更する。

  9. エラー発生時はメッセージを表示

ここからサンプルプログラム

function get_carsenser($car_id, &$error_message){
    //URLの作成
    $tmp_url = "http://webservice.recruit.co.jp/carsensor/usedcar/v1/";
    $tmp_url.= "?key=".[自身のAPIキー];    //ユーザーキー
    $tmp_url.= "&id=".$car_id;    //対象中古車ID
    //外部API接続
    $carsenser = wp_remote_get($tmp_url, array('timeout' => 5));
    //エラーメッセージを表示し、WordPressの処理を中断する
    if(is_wp_error($carsenser)){
        $error_message = $carsenser->get_error_message();
    }elseif($carsenser['response']['code'] != 200){
        $error_message = $carsenser['response']['message'];
    }else{
        //対象データの戻り値を取得
        $carsenser_body = wp_remote_retrieve_body($carsenser);
        //simplexmlで読み込む前に「&」を「&」に置換する
        $carsenser_body = preg_replace('/&(?=[a-z_0-9]+=)/m','&',$carsenser_body);
        //xmlを読み込む
        $xmls = new SimpleXMLElement($carsenser_body);
        $xml = $xmls[0];
    }
    return $xml;
}
$car = get_carsenser([物件ID], $error_message);
if($error_message!=''){
    //API取得に失敗した場合、画面上に情報を表示する。
    echo esc_html($error_message);
}else{
    //API取得に成功した場合、画面上に情報を表示する。
    if($car->usedcar->id==""){
        //値が存在しない場合は、削除された可能性がある。
        echo 'ご指定のお車情報は存在しません';
    }else{
        //正常にデータ取得できた場合、一覧で表示する。
        print_r($car);
    }
}

APIリファレンスはこちら