カーセンサーAPIを使って特定店舗の中古車情報だけを表示する | Webクリエイターな備忘録

このサイトはフリーランスでWeb制作をするクリエイターの備忘録なメモサイトです。 Webサイトを作る際に気になった事やjavaScriptなどのライブラリの事などWebサイト制作に関する事、また気になるでき事、日常の事などを気ままに勝手に書き綴っています。

カーセンサーAPIを使って特定店舗の中古車情報だけを表示する


今回は、カーセンサーAPIを使ってカーセンサーに登録済みの中古車情報をWordpressに読込み表示してみた事を自分の備忘録として掲載します。

中古車販売店用Webサイトについて、もう一度考えてみた

少し前の記事「WordPressで中古車販売サイトを制作してみる」でWordpressで中古車情報を管理する記事を書きましたが、多くの中古車販売店では既に「中古車情報サイト(カーセンサー、gooなど)」に登録済で、出入りの激しい中古車情報を自店Webサイトと中古車情報サイトで重複して管理するのは非常に面倒で大変です。

そこで今回考えたのが、中古車情報の登録・管理・問い合わせ・販売などは大手「中古車情報サイト」に任せ、その中古車情報の抜粋を自店Webサイトに自動で一覧掲載できないか!という感じです。

ネットでいろいろ調べてみると「API(Application Programming Interface)」なるもので実現できそうとわかりました。

ネットで調べてみて解った事は、実際に有料ですが「カーセンサーAPI」を利用して中古車情報一覧を表示するPHPのプログラムを販売している会社がある事、その他ネットで実例として公開されているサイトでは、全国や都道府県別での中古車情報の掲載方法しか見つからない事でした。

もっとニッチな「お店ごとの登録中古車一覧」を載せる方法が知りたい!と思っていましたが、その情報をネット上で見つける事は出来ませんでした。

そこで今回は、中古車情報サイトでAPI情報を出している「カーセンサーAPI」を使用して、WordPressに「お店ごとの登録中古車一覧」を表示する方法やってみます!

カーセンサーAPIを使ってみる

今までAPIを利用した事がありませんので、ネットや書籍で色々と調べてみました。
今回の記事で特に参考にさせてもらったのは「書籍」です。(「書籍」も購入させて頂きました!)

少し前の出版された書籍の様ですが「WordPressプラグイン&WebAPI活用ガイドブック」です。

こちらの書籍の2章 Chapter-04-12「中古車販売情報を表示する」の項目(サンプルファイルを参考にさせて頂きました)をベースに作ってみました。

書籍のサンプルでは、都道府県ごとの車種一覧が表示されてしまい「お店毎の登録車一覧」は表示できません。

少しサンプルファイルの記述の変更が必要です。

お店毎の登録車一覧に変更してみる

カーセンサーAPIを使用するには、「APIキー」が必要なので、色々と作る前に取得しておきます。カーセンサー | APIリファレンス | リクルートWEBサービスで「新規登録」するだけ!「新規登録」と言っても「メールアドレス」を入力して「送信」するだけです。

「Wordpressプラグイン&WebAPI活用ガイドブック」のサンプルを参考にPHPを変更、追記していきます。

まずはAPIでカーセンサーの値を取得するための「リクエストURL」を作ります。
「リクエストURL」は、基本URLに自分の欲しい情報のパラメータを付け、カーセンサーから情報を取得で来るようにするものです。

パラメータの種類は、先ほどカーセンサーAPIの「APIキー」を取得したWebサイトに「パラメータ一覧」が載っていますので、そちらを参考に「リクエストURL」を作っていく事にします。

カーセンサーAPIから取得したいのは「お店ごとの中古車一覧」なのですが、店舗名は簡単に取得できますが、お店の場所を取得するためのパラメータは無いようです。
さらに詳しくパラメータを見ているとお店の「経度」と「緯度」が取れるようなので、こちらの数値と店舗名で店を絞り込む事が出来そうです。

書いたPHP部分が以下になります。

<?php
//ベースURL
$baseurl = "http://webservice.recruit.co.jp/carsensor/usedcar/v1/";

//リクエストパラメータ 
$key = '1234567890'; // あなたのAPIキー
$name = '店舗名'; // 店舗名
$lat = '00.00000'; // 緯度
$lng = '000.000000'; // 経度

//リクエストURLを組み立て
$url = "$baseurl?key=$key&lat=$lat&lng=$lng&count=30";
//XMLパース
$xml = simplexml_load_file( $url );

?>

いずれはWordpressのプラグインにする予定ですが、今回は取得表示できるかのお試しなので色々と直書きしてます。

書いた物を説明しますと

「リクエストパラメータ」の所に、APIキー、店舗名、緯度、経度を調べて記入しときます。
「リクエストURLを組み立て」の所で、パラメータの値を使ってカーセンサーAPIから取得するURLを作ってます。
$baseurlで「ベースURL」、$keyで「APIキー」、$latで「緯度」、$lngで「経度」を「&」で繋げていってます。最後のcount=30は30件分取得する指示です。
「XMLパース」の所で組み立てた「リクエストURL」で帰ってきたXMLファイルをPHPでパースしてオブジェクトに変換する記述です。

これで「経度」「緯度」の範囲内にある店舗から30件分のデータが取得できているはずです。カーセンサーAPIの「緯度」「経度」を使った場合の範囲が1㎞なので、お店同士が近いと違うお店のデータも取得してしましますので、店舗名で絞り込む記述が必要なようです。

また店舗名は、漢字やカタカナの場合は全角のままで、英語表記の場合カーセンサーのWebサイト上は、全角になっていますが半角英字で入力します。あとまれに店舗名の後に「半角スペース」が入力されている場合がありますので、その場合は登録されている通りに入力してください。そうしないとカーセンサーからデータを取得できませんので!注意が必要です。

上記で、カーセンサーAPIからデータ取得部分が出来ましたので、あとは取得したデータを表示する部分を書くだけです。

取得したカーセンサーAPIを表示する

上記でカーセンサーAPIからデータ取得できましたので、取得したデータをhtmlとcssで装飾して表示してみました。

【個別データの表示】

【個別データを並べた表示】

Bootstrapの「カード」デザインでデータを表示し並べてみました。
表示デザインはダメダメですが、APIを使うのが初めてにしては上手にできたような気がします。

あと「カーセンサーAPI」で『メイン画像』以外の写真が「photo->sub」というレスポンスフィールドで取得できるのですが、カーセンサー上で写真が20枚登録されているのに、「photo->sub」レスポンスフィールドでは9枚しか取り出せませんでした。いろいろと調べてみたのですが原因がわかりません。

ご存知の方がいましたら教えて頂けると嬉しいです!

カーセンサーAPIの利用規約及び、クレジット表示に注意です

カーセンサーAPIを取得する際に見ていると思いますが、カーセンサーAPIには利用規約があります。上記ような表示をWebサイト上でする場合は、カーセンサーAPIの利用規約を守りましょう。
念のため「リクルートWebサービス利用規約」はこちら。
またクレジットの表示も必要ですので、以下のサイトの通りにしましょう。
クレジット表示について」はこちら。

作ってみたけど…

作った後で思ったのですが、ネットで検索しても「カーセンサー」などの大手中古車情報サイトの情報を自店のWebサイトに載せる方法がなかったのは、そんな事を考える人がいない(需要がない)?

自店Webサイトに、大手中古車情報サイトリンクバナー貼った方が簡単でやりやすいですしね。

まっ、今回は自分の「知見を広めた」って事でOKですね!

コメントは受け付けていません。