WEB API PROGRAMMING!

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

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

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

COLOURlovers API

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

<?php
/**
* colourlovers APIに接続する
*
* @param string メソッド名
* @param array その他のリクエストオプション
*/
function request_colourlovers($uri, $options = array())
{
$url = 'http://www.colourlovers.com/api/' . $uri;
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_colors($type, $options = array())
{
return request_colourlovers("colors/${type}", $options);
}

/**
* パレットAPIにリクエストする
*
*/
function request_palettes($type, $options = array())
{
return request_colourlovers("palettes/${type}", $options);
}

/**
* パターンAPIにリクエストする
*
*/
function request_patterns($type, $options = array())
{
return request_colourlovers("patterns/${type}", $options);
}

/**
* メンバーAPIにリクエストする
*
*/
function request_lovers($type, $options = array())
{
return request_colourlovers("lovers/${type}", $options);
}

/**
* 統計APIにリクエストする
*
*/
function request_stats($type, $options = array())
{
return request_colourlovers("stats/${type}", $options);
}

// 検索する
$keywords = '';
$result = array();
if (isset($_GET['search'])) {
$keywords = $_GET['keywords'];
$type = $_GET['type'];
unset($_GET['search']);
unset($_GET['type']);

$options = array();
foreach ($_GET as $key => $val) {
$options[$key] = $val;
}

switch($type) {
case 'colors':
$result = request_colors('', $options);
break;
case 'palettes':
$result = request_palettes('', $options);
break;
case 'patterns':
$result = request_patterns('', $options);
break;
case 'lovers':
$result = request_lovers('');
break;
}
}
?>

<!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>COLOURlovers APIを使って、さまざまなカラーパレットを検索してみよう</title>
<style text="text/css">
table { border: 1px solid gray; border-collapse: collapse; margin: 15px; float: left; height: 500px; }
table th, table td { border: 1px solid gray; text-align: center; padding: 5px; }
div.center { text-align: center; }
.result { width: 250px; }
</style>
</head>

<body style="text-align: center;">
<h2>COLOURlovers APIを使って、さまざまなカラーパレットを検索してみよう</h2>

<p>キーワードを入力して、ボタンをクリックしてください。</p>
<form action="colourlovers.php" class="search">
<label for="keywords">キーワード:</label><input type="text" name="keywords" value="<?php echo htmlspecialchars($keywords) ?>">
<br>
<input type="radio" name="type" value="colors" <?php echo ($type == 'colors') ? 'checked' : ''?>>色
<input type="radio" name="type" value="palettes" <?php echo ($type == 'palettes') ? 'checked' : ''?>>パレット
<input type="radio" name="type" value="patterns" <?php echo ($type == 'patterns') ? 'checked' : ''?>>パターン
<input type="radio" name="type" value="lovers" <?php echo ($type == 'lovers') ? 'checked' : ''?>>メンバー
<br>
<input type="submit" name="search" value="検索する">
</form>

<?php if ($result): ?>

<?php if ($type == 'colors'): ?>
<?php foreach ($result->color as $color): ?>
<table class="result">
<tr><td>タイトル</td><td><a href="<?php echo $color->url ?>"><?php echo $color->title ?></a></td></tr>
<tr><td>作成者</td><td><a href="http://ja-jp.colourlovers.com/lover/<?php echo $color->userName ?>"><?php echo $color->userName ?></a></td></tr>
<tr><td colspan="2"><img src="<?php echo $color->imageUrl ?>"></td></tr>
<tr><td colspan="2"><img src="<?php echo $color->badgeUrl ?>"></td></tr>
<tr><td>RGB</td><td>(<?php echo $color->rgb->red ?>, <?php echo $color->rgb->green ?>, <?php echo $color->rgb->blue ?>)</td></tr>
<tr><td>RGB(HEX)</td><td><?php echo $color->hex ?></td></tr>
<tr><td>ランク</td><td><?php echo $color->rank ?></td></tr>
<tr><td>作成日時</td><td><?php echo $color->dateCreated ?></td></tr>
</table>
<?php endforeach; ?>

<?php elseif ($type == 'palettes'): ?>
<?php foreach ($result->palette as $palette): ?>
<table class="result">
<tr><td>タイトル</td><td><a href="<?php echo $palette->url ?>"><?php echo $palette->title ?></a></td></tr>
<tr><td>作成者</td><td><a href="http://ja-jp.colourlovers.com/lover/<?php echo $palette->userName ?>"><?php echo $palette->userName ?></a></td></tr>
<tr><td colspan="2"><img src="<?php echo $palette->imageUrl ?>"></td></tr>
<tr><td colspan="2"><img src="<?php echo $palette->badgeUrl ?>"></td></tr>
<tr>
<td>RGB(HEX)</td>
<td>
<?php $colors_hex = $palette->colors->hex ?>
<?php foreach ($colors_hex as $hex) : ?>
<?php echo $hex ?><br>
<?php endforeach; ?>
</td>
</tr>
<tr><td>ランク</td><td><?php echo $palette->rank ?></td></tr>
<tr><td>作成日時</td><td><?php echo $palette->dateCreated ?></td></tr>
</table>
<?php endforeach; ?>

<?php elseif ($type == 'patterns'): ?>
<?php foreach ($result->pattern as $pattern): ?>
<table class="result">
<tr><td>タイトル</td><td><a href="<?php echo $pattern->url ?>"><?php echo $pattern->title ?></a></td></tr>
<tr><td>作成者</td><td><a href="http://ja-jp.colourlovers.com/lover/<?php echo $pattern->userName ?>"><?php echo $pattern->userName ?></a></td></tr>
<tr><td colspan="2"><img src="<?php echo $pattern->imageUrl ?>"></td></tr>
<tr><td colspan="2"><img src="<?php echo $pattern->badgeUrl ?>"></td></tr>
<tr>
<td>RGB(HEX)</td>
<td>
<?php $colors_hex = $pattern->colors->hex ?>
<?php foreach ($colors_hex as $hex) : ?>
<?php echo $hex ?><br>
<?php endforeach; ?>
</td>
</tr>
<tr><td>ランク</td><td><?php echo $pattern->rank ?></td></tr>
<tr><td>作成日時</td><td><?php echo $pattern->dateCreated ?></td></tr>
</table>
<?php endforeach; ?>

<?php elseif ($type == 'lovers'): ?>
<?php foreach ($result->lover as $lovers): ?>
<table class="result">
<tr><td>名前</td><td><a href="<?php echo $lovers->url ?>"><?php echo $lovers->userName ?></a></td></tr>
<tr><td>登録日時</td><td><?php echo $lovers->dateRegistered ?></td></tr>
<tr><td>最終ログイン日時</td><td><?php echo $lovers->dateLastActive ?></td></tr>
<tr><td>評価</td><td><?php echo $lovers->rating ?></td></tr>
<tr><td>登録ロケーション</td><td><?php echo $lovers->location ?></td></tr>
<tr><td>作成した色数</td><td><?php echo $lovers->numColors ?></td></tr>
<tr><td>作成したパレット数</td><td><?php echo $lovers->numPalettes ?></td></tr>
<tr><td>作成したパターン数</td><td><?php echo $lovers->numPatterns ?></td></tr>
<tr><td>コメントした数</td><td><?php echo $lovers->numCommentsMade ?></td></tr>
</table>
<?php endforeach; ?>

<?php endif; ?>

<?php endif; ?>

<br clear="both">
<hr>
Powered by <a href="http://colourlovers.com/api">COLOURlovers API</a><br>
<a href="http://www.colourlovers.com" target="_blank"><img src="http://www.colourlovers.com/images/colourLoversBig.png" style="width: 214px; height: 37px; border: 0 none;" alt="COLOURLovers | Fight for love in the color revolution" /></a>
</body>
</html>

●●●●●

←BACK

Copyright (c) 2009 MdN Corporation  All rights reserved.