Instagram的地理标记API

时间:2013-05-10 18:27:29

标签: api location instagram geotagging

我正在努力学习Instagram的API作为辅助项目。我已按照本教程(http://eduvoyage.com/instagram-search-app.html)通过hashtag实现搜索功能。这对我非常有帮助。我在API中看到的一件事是位置ID功能,我想知道如何实现它。通过在这个网站上搜索,我发现可以发出一个请求,返回以下内容。

'{
"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#retrievedetails

<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(Folder)”,但没有任何名为“Loader.php”。这只是加载'Loader'文件夹中的所有内容吗?对于Zend_Loader,有一个Zend / Http / Client目录,但Client也是一个文件夹。

TL;博士 尝试设置一个将搜索instagram的程序(如上面的教程中所链接),可以单击图片结果,打开一个显示图片和用户配置文件的选项卡,以及另一个显示所有图像元数据的选项卡。有更简单的方法吗?还是一个更加noob友好的教程?

1 个答案:

答案 0 :(得分:0)

使用此示例时遇到了类似的问题。您必须在此示例的最顶部包含Zend框架的路径。我是在顶部自己的php块中完成的。

ini_set('include_path', 'path/to/ZendFramework/library');