API геотегов для Instagram
Я работаю над изучением API Instagram как побочного проекта. Я следовал этому руководству ( http://eduvoyage.com/instagram-search-app.html), чтобы реализовать функцию поиска по хэштегу. Это было чрезвычайно полезно для меня. Одной из вещей, которые я видел в API, была функция определения местоположения, и мне было интересно, как это реализовать. В результате поиска на этом сайте я обнаружил, что можно сделать запрос, который вернет следующее.
'{
"meta": {
"code": 200
},
"data": {
"attribution": null,
"tags": [],
"type": "image",
"location": {
"latitude": 48.8635,
"longitude": 2.301333333
},
"comments": {
"count": 0,
"data": []
},
..........'
Я пытаюсь понять этот урок, чтобы обработать эту информацию. ( http://www.ibm.com/developerworks/xml/library/x-instagram1/index.html)
<html>
<head>
<style>
</head>
<body>
<h1>Instagram Image Detail</h1>
<?php
// load Zend classes
require_once 'Zend/Loader.php';
Zend_Loader::loadClass('Zend_Http_Client');
// define consumer key and secret
// available from Instagram API console
$CLIENT_ID = 'YOUR-CLIENT-ID';
$CLIENT_SECRET = 'YOUR-CLIENT-SECRET';
try {
// define image id
$image = '338314508721867526';
// initialize client
$client = new Zend_Http_Client('https://api.instagram.com/v1/media/' . $image);
$client->setParameterGet('client_id', $CLIENT_ID);
// get image metadata
$response = $client->request();
$result = json_decode($response->getBody());
// display image data
?>
<div id="container">
<div id="info">
<h2>Meta</h2>
<strong>Date: </strong>
<?php echo date('d M Y h:i:s', $result->data->created_time); ?>
<br/>
<strong>Creator: </strong>
<?php echo $result->data->user->username; ?>
(<?php echo !empty($result->data->user->full_name) ?
$result->data->user->full_name : 'Not specified'; ?>)
<br/>
<strong>Location: </strong>
<?php echo !is_null($result->data->location) ?
$result->data->location->latitude . ',' .
$result->data->location->longitude : 'Not specified'; ?>
<br/>
<strong>Filter: </strong>
<?php echo $result->data->filter; ?>
<br/>
<strong>Comments: </strong>
<?php echo $result->data->comments->count; ?>
<br/>
<strong>Likes: </strong>
<?php echo $result->data->likes->count; ?>
<br/>
<strong>Resolution: </strong>
<a href="<?php echo $result->data->images
->standard_resolution->url; ?>">Standard</a> |
<a href="<?php echo $result->data->images
->thumbnail->url; ?>">Thumbnail</a>
<br/>
<strong>Tags: </strong>
<?php echo implode(',', $result->data->tags); ?>
<br/>
</div>
<div id="image">
<h2>Image</h2>
<img src="<?php echo $result->data->images
->low_resolution->url; ?>" /></a>
</div>
<div id="comments">
<?php if ($result->data->comments->count > 0): ?>
<h2>Comments</h2>
<ul>
<?php foreach ($result->data->comments->data as $c): ?>
<div class="item"><img src="<?php echo $c
->from->profile_picture; ?>" class="profile" />
<?php echo $c->text; ?> <br/>
By <em> <?php echo $c->from->username; ?></em>
on <?php echo date('d M Y h:i:s', $c->created_time); ?>
</div>
</li>
<?php endforeach; ?>
</ul>
<?php endif; ?>
</div>
</div>
<?php
} catch (Exception $e) {
echo 'ERROR: ' . $e->getMessage() . print_r($client);
exit;
}
?>
</body>
</html>
Основная проблема (я думаю), которая у меня возникла, здесь: require_once 'Zend/Loader.php'; Zend_Loader::loadClass('Zend_Http_Client');
Я скачал Zend Frame 1.12.13, но я не уверен, о чем просят эти строки кода. В папке Zend Framework, он идет "Zend/Loader(Папка)", но ничего не называется "Loader.php". Это просто загружает все в папку "Загрузчик"? То же самое для Zend_Loader, есть каталог Zend/Http/Client, но Client также является папкой.
tl; dr Попытка настроить программу, которая будет искать инстаграм (как показано в учебном руководстве выше), сможет нажимать на результаты изображения, открывать одну вкладку, которая показывает изображение и профиль пользователя, и другую вкладку, которая показывает все метаданные изображения. Есть ли более простой способ сделать это? Или более дружественный для новичка учебник?
1 ответ
Я столкнулся с аналогичной проблемой при использовании этого примера. Вы должны указать путь к Zend-фреймворку в самом верху этого примера. Я сделал это в своем собственном блоке php вверху.
ini_set('include_path', 'path/to/ZendFramework/library');