WEB API PROGRAMMING!

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

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

Twitter API 1
サンプルデータ1

<?php

/**
* Twitter search APIにリクエストする
*
*/
function request_twitter_search($method, $options = array())
{
$url = "http://search.twitter.com/${method}.json";

if ($options) {
foreach ($options as $key => $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);

return json_decode($response);
}

$result = array();
$keyword = "";
if (isset($_GET['keyword'])) {
$keyword = $_GET['keyword'];
if (isset($_GET['search'])) {
$options = array('q' => $keyword, 'rpp' => 50);
$result = request_twitter_search('search', $options);
}
else if (isset($_GET['trends'])) {
$result = request_twitter_search('trends');
}
}
?>

<!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>世界中の人たちのひとことを検索してみよう!</title>
<style text="text/css">
table { border: 1px solid gray; border-collapse: collapse; margin: 15px; float: left; }
table th, table td { border: 1px solid gray; text-align: center; padding: 5px; }
.result { width: 250px; }
</style>
</head>

<body style="text-align: center;">
<p>検索したいキーワードを入力して、ボタンをクリックしてください</p>
<form action="twitter1.php" class="search">
<input type="text" name="keyword" value="<?php echo $keyword ?>" size="60">
<br>
<input type="submit" name="search" value="検索する">
<br>
<input type="submit" name="trends" value="流行りのトピックを表示する">
</form>

<?php if ($result): ?>
<?php if ($result->results): ?>
<?php foreach ($result->results as $v): ?>
<p>
<a href="http://twitter.com/<?php echo $v->from_user ?>">
<img src="<?php echo $v->profile_image_url ?>">
</a>
<a href="http://twitter.com/<?php echo $v->from_user ?>/status/<?php echo $v->status_id ?>">
<?php echo htmlspecialchars($v->text, ENT_QUOTES) ?>
</a>
<?php endforeach; ?>
<?php elseif ($result->trends): ?>
<?php foreach ($result->trends as $v): ?>
<p>
<a href="<?php echo $v->url ?>"><?php echo $v->name ?></a>
</p>
<?php endforeach; ?>
<?php endif; ?>
<?php endif; ?>
</body>
</html>

 

Twitter API 2
サンプルデータ2

<?php

/**
* Twitter timeline APIにリクエストする
*
*/
function request_twitter_timeline()
{
$url = "http://api.twitter.com/1/statuses/public_timeline.json";

$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);

return json_decode($response);
}

$result = request_twitter_timeline();
?>

<!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>みんなのひとことを取得してみよう!</title>
<style text="text/css">
table { border: 1px solid gray; border-collapse: collapse; margin: 15px; float: left; }
table th, table td { border: 1px solid gray; text-align: center; padding: 5px; }
.result { width: 250px; }
</style>
</head>

<body style="text-align: center;">
<?php if ($result): ?>
<?php foreach ($result as $v): ?>
<p>
<a href="http://twitter.com/<?php echo $v->user->screen_name ?>">
<img src="<?php echo $v->user->profile_image_url ?>">
</a>
<a href="http://twitter.com/<?php echo $v->user->screen_name ?>/status/<?php echo $v->id ?>">
<?php echo htmlspecialchars($v->text, ENT_QUOTES) ?>
</a>
<?php endforeach; ?>
<?php endif; ?>
</body>
</html>

 

Twitter API 3
サンプルデータ3

<?php

/**
* Twitter trends location APIにリクエストする
*
*/
function request_twitter_trends_location($method, $options = array())
{
$url = "http://api.twitter.com/1/trends/${method}.json";

if ($options) {
foreach ($options as $key => $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);

return json_decode($response);
}

$location = request_twitter_trends_location("available");
$result = array();
if ($_GET['search']) {
$woeid = $_GET['woeid'];
$result = request_twitter_trends_location($woeid);
}
?>

<!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>その地域で流行っているトピックを取得してみよう!</title>
<style text="text/css">
table { border: 1px solid gray; border-collapse: collapse; margin: 15px; float: left; }
table th, table td { border: 1px solid gray; text-align: center; padding: 5px; }
.result { width: 250px; }
</style>
</head>

<body style="text-align: center;">
<p>検索したロケーションを選択して、「検索」ボタンをクリックしてください</p>
<form action="twitter3.php" class="search">
ロケーション: <select name="woeid">
<?php foreach ($location as $l): ?>
<option value="<?php echo $l->woeid ?>">
<?php if ($l->country): ?>
<?php echo $l->country ?>:
<?php endif; ?>
<?php echo $l->name ?>
</option>
<?php endforeach; ?>
</select>
<input type="submit" name="search" value="検索">
</form>

<?php if ($result): ?>
<?php if ($result[0]->locations): ?>
<p>ロケーション名: <?php echo $result[0]->locations[0]->name ?></p>
<?php endif; ?>
<?php if ($result[0]->trends): ?>
<?php foreach ($result[0]->trends as $v): ?>
<p><a href="<?php echo $v->url ?>"><?php echo $v->name ?></a></p>
<?php endforeach; ?>
<?php endif; ?>
<?php endif; ?>
</body>
</html>

 

 

←BACK

Copyright (c) 2010 MdN Corporation  All rights reserved.