使用Instagram api加速多重查询

时间:2014-04-04 11:17:45

标签: javascript jquery api instagram

我正在使用媒体/搜索endopoint传递像这样的lat和lon的图像

 url = Instagram.Config.apiHost + "/v1/media/search?lat=28.46555600&lng=-16.25113310&distance=5000&callback=?&client_id=" + Instagram.Config.clientID;

然后我开始只使用某个标签#instabeachpro的照片,如果找不到图片我会通过下一组图片将最后一张图片created_time添加到带有max_timestamp参数的网址,这里是代码我正在使用

 (function(){
 var url,tags,menos,photos = new Array(),i=90;

 function search(){
    generateResource(tag;
    $.getJSON(url, toScreen);
 }
function init(){
    bindEventHandlers();
}
 function generateResource(){
    url = Instagram.Config.apiHost + "/v1/media/search?lat=28.46555600&lng=-16.25113310&distance=5000&callback=?&client_id=" + Instagram.Config.clientID;
   return url;
 }
function toScreen(){
    var next_url=url+"&max_timestamp="+data.data[data.data.length - 1].created_time;

    $.each(data.data, function(index, photo){
    i--;
   tags=photo.tags;
   menos=jQuery.inArray( "instabeachpro", tags );
   if(menos!=-1)
   { 
       $('div#photos-wrap').append("<div id='"+i+"' ><a href='"+photo.link+"'><img     src='"+photo.images.low_resolution.url+"'/></a></div><div><img class='second'    src='"+photo.user.profile_picture+"'/></div>"); 
   }
  else{
    i++;
   }


   });
   if(next_url!=undefined+"&callback=?" && i>=0){    
      console.log(i);
      pagination(next_url);
    }

 }
 function pagination(url)
 {
   $.getJSON(url, toScreen);
 }

   Instagram.App = {
search: search,
init: init
 };

  function bindEventHandlers(){
     $('body').on('click', '#loadObject', function(){
        url=$(this).attr('data-next-url');
        i=90;
       if(url=='undefined')
      {
         alert("undefined");
      }
     else{
        pagination(url);
        return false;
      }
  });
 }

 }());

 $(function(){
    Instagram.App.init();
    Instagram.App.search(); 

 });

这有效,但速度非常慢,我不知道该怎么做才能加快速度,因为api不支持我想做的搜索,而且我需要获得带有某个标签的电脑。在某个地方,我被告知这是唯一的方法,但必须有一个更快的方法。谢谢。

1 个答案:

答案 0 :(得分:0)

您的方法效率非常低,因为您搜索的标记不受欢迎且很少有人使用它,因此在API调用的数量上,获取位置周围的API然后按标记过滤会很昂贵。

反过来搜索,为标签进行API调用,然后检查该照片的位置。检查此实施:http://www.gramfeed.com/instagram/tags#instabeachpro 您可以获取标记照片并将其映射到Google地图上,滚动以加载更多照片,并查看只有少数#instabeachpro张照片标有位置