我正在使用媒体/搜索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不支持我想做的搜索,而且我需要获得带有某个标签的电脑。在某个地方,我被告知这是唯一的方法,但必须有一个更快的方法。谢谢。
答案 0 :(得分:0)
您的方法效率非常低,因为您搜索的标记不受欢迎且很少有人使用它,因此在API调用的数量上,获取位置周围的API然后按标记过滤会很昂贵。
反过来搜索,为标签进行API调用,然后检查该照片的位置。检查此实施:http://www.gramfeed.com/instagram/tags#instabeachpro
您可以获取标记照片并将其映射到Google地图上,滚动以加载更多照片,并查看只有少数#instabeachpro
张照片标有位置