WEB API PROGRAMMING!

web creators 2009年10月号
WEB API PROGRAMMING!:サンプルデータ

<注意書き>
※Web APIの仕様が変更されたなどの理由により、記事と動作が異なる場合があります。あらかじめご了承ください。

●●●●●サンプルデータ1のタイトル

ぐるなび API

●●●●●サンプルデータ1

<?php
//define('API_KEY', '取得したアクセスキーを指定してください');
define('API_KEY', 'ae1a024714b91408');

/**
* ホットペッパーBeauty Webサービスに接続する
*
* @param string メソッド名
* @param array その他のリクエストオプション
*/
function request_beauty($uri, $options = array())
{
$url = 'http://webservice.recruit.co.jp/beauty/' . $uri . '/v1/';
$options['key'] = API_KEY;
if ($options) {
foreach ($options as $key => $val) {
if ($val) {
$str_params []= sprintf('%s=%s', $key, urlencode($val));
}
}
$url = sprintf('%s?%s', $url, implode('&', $str_params));
}

$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch,
CURLOPT_HTTP_VERSION, CURL_HTTP_VERSION_1_1);
$response = curl_exec($ch);
curl_close($ch);
$result = simplexml_load_string($response);
if (! $result) {
return false;
}

return $result;
}

/**
* サロンサーチAPIにリクエストする
*
*/
function request_salon_search($options = array())
{
return request_beauty('salon', $options);
}

/**
* サービスエリアマスタAPIにリクエストする
*
*/
function request_service_area($options = array())
{
return request_beauty('service_area', $options);
}

/**
* 中エリアマスタAPIにリクエストする
*
*/
function request_middle_area($options = array())
{
return request_beauty('middle_area', $options);
}

/**
* 小エリアマスタAPIにリクエストする
*
*/
function request_small_area($options = array())
{
return request_beauty('small_area', $options);
}

/**
* イメージマスタAPIにリクエストする
*
*/
function request_hair_image($options = array())
{
return request_beauty('hair_image', $options);
}

/**
* 長さマスタAPIにリクエストする
*
*/
function request_hair_length($options = array())
{
return request_beauty('hair_length', $options);
}

/**
* こだわりマスタAPIにリクエストする
*
*/
function request_kodawari($options = array())
{
return request_beauty('kodawari', $options);
}

/**
* こだわり設備マスタAPIにリクエストする
*
*/
function request_kodawari_setsubi($options = array())
{
return request_beauty('kodawari_setsubi', $options);
}

/**
* こだわりメニューマスタAPIにリクエストする
*
*/
function request_kodawari_menu($options = array())
{
return request_beauty('kodawari_menu', $options);
}

/**
* 特集マスタAPIにリクエストする
*
*/
function request_feature($options = array())
{
return request_beauty('feature', $options);
}

/**
* 特集詳細マスタAPIにリクエストする
*
*/
function request_feature_detail($options = array())
{
return request_beauty('feature_detail', $options);
}

/**
* メニュー内容マスタAPIにリクエストする
*
*/
function request_menu_content($options = array())
{
return request_beauty('menu_content', $options);
}

/**
* ヘアカラーマスタAPIにリクエストする
*
*/
function request_hair_color($options = array())
{
return request_beauty('hair_color', $options);
}

// サービスエリアマスタを取得する
$service_area = request_service_area();
// 中エリアマスタを取得する
$middle_area = request_middle_area();
// 小エリアマスタを取得する
$small_area = request_small_area();
// イメージマスタを取得する
$hair_image = request_hair_image();
// 長さマスタを取得する
$hair_length = request_hair_length();
// こだわりマスタを取得する
$kodawari = request_kodawari();
// こだわり設備マスタを取得する
$kodawari_setsubi = request_kodawari_setsubi();
// こだわりメニューマスタを取得する
$kodawari_menu = request_kodawari_menu();
// 特集マスタを取得する
$feature = request_feature();
// 特集詳細マスタを取得する
$feature_detail = request_feature_detail();
// メニュー内容マスタを取得する
$menu_content = request_menu_content();
// ヘアカラーマスタを取得する
$hair_color = request_hair_color();

// サロンを検索する
$result = array();
if (isset($_GET['search'])) {
unset($_GET['search']);
$options = array();
foreach ($_GET as $key => $val) {
$options[$key] = $val;
}

$result = request_salon_search($options);
}
?>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="ja" xml:lang="ja">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<title>ホットペッパーBeauty APIを使って、サロン検索してみよう</title>
<style text="text/css">
table { border: 1px solid gray; border-collapse: collapse; margin: 15px; width: 200px; height: 400px; float: left; }
table th, table td { border: 1px solid gray; text-align: center; }
div.center { text-align: center; }
.result { width: 250px; }
</style>
</head>

<body style="text-align: center;">
<h2>ホットペッパーBeauty APIを使って、サロン検索してみよう</h2>

<p>検索したい条件を入力して「検索」ボタンをクリックしてください。</p>
<form action="beauty.php" class="search">
<label for="name">サロン名:</label><input type="text" name="name">
<label for="name_kana">サロン名(読み):</label><input type="text" name="name_kana">
<br>
<label for="service_area">エリア:</label>
<select name="service_area">
<option value="">選択なし</option>
<?php foreach ($service_area->service_area as $area): ?>
<option value="<?php echo $area->code ?>"><?php echo $area->name ?></option>
<?php endforeach; ?>
</select>
<label for="middle_area">中エリア:</label>
<select name="middle_area">
<option value="">選択なし</option>
<?php foreach ($middle_area->middle_area as $area): ?>
<option value="<?php echo $area->code ?>"><?php echo $area->name ?></option>
<?php endforeach; ?>
</select>
<label for="small_area">小エリア:</label>
<select name="small_area">
<option value="">選択なし</option>
<?php foreach ($small_area->small_area as $area): ?>
<option value="<?php echo $area->code ?>"><?php echo $area->name ?></option>
<?php endforeach; ?>
</select>
<br>
<label for="hair_image">髪型のイメージ:</label>
<select name="hair_image">
<option value="">選択なし</option>
<?php foreach ($hair_image->hair_image as $image): ?>
<option value="<?php echo $image->code ?>"><?php echo $image->name ?></option>
<?php endforeach; ?>
</select>
<label for="hair_length">髪の長さ:</label>
<select name="hair_length">
<option value="">選択なし</option>
<?php foreach ($hair_length->hair_length as $length): ?>
<option value="<?php echo $length->code ?>"><?php echo $length->name ?></option>
<?php endforeach; ?>
</select>
<label for="hair_ryou">髪量:</label>
<select name="hair_ryou">
<option value="">選択なし</option>
<option value="1">少ない</option>
<option value="2">普通</option>
<option value="3">多い</option>
</select>
<label for="hair_shitsu">髪質:</label>
<select name="hair_shitsu">
<option value="">選択なし</option>
<option value="1">柔らかい</option>
<option value="2">普通</option>
<option value="3">硬い</option>
</select>
<label for="hair_futosa">髪の太さ:</label>
<select name="hair_futosa">
<option value="">選択なし</option>
<option value="1">細い</option>
<option value="2">普通</option>
<option value="3">太い</option>
</select>
<label for="hair_kuse">髪のクセ:</label>
<select name="hair_kuse">
<option value="">選択なし</option>
<option value="1">なし</option>
<option value="2">少し</option>
<option value="3">強い</option>
</select>
<label for="hair_kaogata">顔型:</label>
<select name="hair_kaogata">
<option value="">選択なし</option>
<option value="1">丸形</option>
<option value="2">卵型</option>
<option value="3">四角</option>
<option value="4">逆三角形</option>
<option value="5">ペース</option>
</select>
<br>
<label for="kodawari">こだわり:</label>
<select name="kodawari">
<option value="">選択なし</option>
<?php foreach ($kodawari->kodawari as $kodawari): ?>
<option value="<?php echo $kodawari->code ?>"><?php echo $kodawari->name ?></option>
<?php endforeach; ?>
</select>
<label for="kodawari_setsubi">こだわり設備:</label>
<select name="kodawari_setsubi">
<option value="">選択なし</option>
<?php foreach ($kodawari_setsubi->kodawari_setsubi as $setsubi): ?>
<option value="<?php echo $setsubi->code ?>"><?php echo $setsubi->name ?></option>
<?php endforeach; ?>
</select>
<label for="kodawari_menu">こだわりメニュー:</label>
<select name="kodawari_menu">
<option value="">選択なし</option>
<?php foreach ($kodawari_menu->kodawari_menu as $menu): ?>
<option value="<?php echo $menu->code ?>"><?php echo $menu->name ?></option>
<?php endforeach; ?>
</select>
<br>
<label for="feature">特集:</label>
<select name="feature">
<option value="">選択なし</option>
<?php foreach ($feature->feature as $feature): ?>
<option value="<?php echo $feature->code ?>"><?php echo $feature->name ?></option>
<?php endforeach; ?>
</select>
<label for="feature_detail">特集詳細:</label>
<select name="feature_detail">
<option value="">選択なし</option>
<?php foreach ($feature_detail->feature_detail as $feature): ?>
<option value="<?php echo $feature->code ?>"><?php echo $feature->name ?></option>
<?php endforeach; ?>
</select>
<br>
<label for="menu_content">メニュー内容:</label>
<select name="menu_content">
<option value="">選択なし</option>
<?php foreach ($menu_content->menu_content as $menu): ?>
<option value="<?php echo $menu->code ?>"><?php echo $menu->name ?></option>
<?php endforeach; ?>
</select>
<br>
<label for="keyword">キーワード:</label><input type="text" name="keyword">
<br>
<label for="sort">並び順:</label>
<select name="sort">
<option value="0">ランダム</option>
<option value="1">サロン名かな順</option>
<option value="2">小エリアコード順</option>
<option value="3">ビューティおすすめ順</option>
</select>
<br>
<input type="submit" name="search" value="検索する">
</form>

<?php if ($result): ?>
<?php foreach ($result->salon as $salon): ?>
<table class="result">
<tr><td><?php echo $salon->name ?>(<?php echo $salon->name_kana ?>)</td></tr>
<tr><td><a href="<?php echo $salon->urls->pc ?>">PCサイトURL</a></td></tr>
<tr><td><a href="<?php echo $salon->urls->mobile ?>">携帯サイトURL</a></td></tr>
<tr><td>
<img src="<?php echo $salon->main->photo->s ?>"><br>
<?php foreach ($salon->mood as $mood): ?>
<img src="<?php echo $mood->photo ?>" width="100" height="80"><br>
<?php endforeach; ?>
</td></tr>
<tr><td><?php echo $salon->address ?></td></tr>
<tr><td>営業時間(定休日):<?php echo $salon->open ?>(<?php echo $salon->close ?>)</td></tr>
<tr><td>?特集?</td></tr>
<?php foreach ($salon->feature as $feature): ?>
<tr><td>
<?php echo $feature->g_name ?><br>
<?php echo $feature->caption ?><br>
<?php echo $feature->description ?><br>
<img src="<?php echo $feature->photo->s ?>">
</td></tr>
<?php endforeach; ?>
</table>
<?php endforeach; ?>
<?php endif; ?>

<br clear="both">
<hr>
<a href="http://webservice.recruit.co.jp/"><img src="http://webservice.recruit.co.jp/banner/beauty-m.gif" alt="ホットペッパーBeauty Webサービス" width="88" height="35" border="0" title="ホットペッパーBeauty Webサービス"></a>
<br>
<p>【画像提供:ホットペッパーBeauty】</p>
</body>
</html>

●●●●●

←BACK

Copyright (c) 2009 MdN Corporation  All rights reserved.