我一直在做一些研究,并试图弄清楚如何显示超过20张来自instagram api的图像。我是新手,所以任何帮助将不胜感激!试着看看是否有任何工作?看到一些关于添加可能有帮助的分页的东西..如果那个案例细节如何做到这一点也会很棒!
这是我到目前为止的代码。
<script type="text/javascript">
$.ajax({
type: "GET",
dataType: "jsonp",
cache: false,
url: "https://api.instagram.com/v1/tags/coffee/media/recent?client_id=[]&access_token=[]",
success: function(data) {
for (var i = 0; i < 20; i++) {
$(".instagram").append("<a class='big-square span2' target='_blank' href='" + data.data[i].link +"'><img src='" + data.data[i].images.low_resolution.url +"'></img></a>");
}
}
});
</script>
答案 0 :(得分:11)
Instagram对其API有20个图像限制,请查看此主题和我的回答:
What is the maximum number of requests for Instagram?
编辑:另外,请查看THIS
答案 1 :(得分:5)
2015年11月17日之前创建的任何应用程序将继续运行至2016年6月。2016年6月之后,如果通过审核流程未获批准,应用程序将自动转移到沙盒模式。
沙盒模式是真实的Instagram数据(即Instagram应用程序中通常可见的内容),但具有以下条件:
答案 2 :(得分:3)
尝试在请求中添加&count=N
,其中N是您想要的结果数。
答案 3 :(得分:3)
试试此代码
$api = "https://api.instagram.com/v1/tags/snow/media/recent?client_id=".$client;
function get_curl($url) {
if(function_exists('curl_init')) {
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL,$url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_HEADER, 0);
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 0);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0);
$output = curl_exec($ch);
echo curl_error($ch);
curl_close($ch);
return $output;
} else{
return file_get_contents($url);
}
}
while ($api !== NULL) {
$response = get_curl($api);
foreach(json_decode($response)->data as $item){
$src = $item->images->standard_resolution->url;
$thumb = $item->images->thumbnail->url;
$url = $item->link;
$images[] = array(
"src" => htmlspecialchars($src),
"thumb" => htmlspecialchars($thumb),
"url" => htmlspecialchars($url)
);
echo "<a href='".$src."'><img src='".$thumb."' width='150' height='150' border='0'></a> ";
}
$api = json_decode($response)->pagination->next_url;
}
答案 4 :(得分:1)
见http://instagram.com/developer/endpoints/。它详细说明了端点的泛型,还列出了分页属性。简而言之,“分页”响应将包含next_url
,可用于检索下一组结果。随后检索所有下一个URL(只要它们在结果中提供)将为您提供完整的设置。
顺便说一下,您可以尝试增加请求中的count
参数。 (根据您使用的Instagram库,可以通过options
哈希或类似的东西提供这些内容。)这可能会为您节省一些额外的请求。我刚才提到的页面没有指定最大计数值。我怀疑Instagram正在动态地改变每个端点的最大值。
答案 5 :(得分:1)
通过指定count
参数并将其设置为您想要的数字,您可以获得超过20个项目。
但是,对于你提出的每个请求,Instagram还会对你的无记录限制为33,因此如果你的请求超过33,你就必须分页。
但是,我写了Instafetch来帮助你分页,它甚至会为你过滤媒体标签。所以随意使用它!
答案 6 :(得分:1)
如果您是沙盒用户,则不能获得超过20个帖子 请阅读“API BEHAVIOR”here
答案 7 :(得分:0)
实际上,有机会获得接下来的20张照片,然后是接下来的20张,依此类推...... 在JSON响应中,有一个&#34; 分页&#34;阵列:
"pagination":{
"next_max_tag_id":"1411892342253728",
"deprecation_warning":"next_max_id and min_id are deprecated for this endpoint; use min_tag_id and max_tag_id instead",
"next_max_id":"1411892342253728",
"next_min_id":"1414849145899763",
"min_tag_id":"1414849145899763",
"next_url":"https:\/\/api.instagram.com\/v1\/tags\/lemonbarclub\/media\/recent?client_id=xxxxxxxxxxxxxxxxxx\u0026max_tag_id=1411892342253728"
}
这是有关特定API调用和对象的信息&#34; next_url &#34;显示获取下20张图片的网址,以便获取该网址,并在接下来的20张图片中调用它...
有关Instagram API的更多信息请查看:https://medium.com/@KevinMcAlear/getting-friendly-with-instagrams-api-abe3b929bc52
答案 8 :(得分:0)
您可以使用Instagram instafeed这样的Instagram Feed库。它允许获得60张图像(最大值)
例如:
<script type="text/javascript">
var feed = new Instafeed({
get: 'tagged',
tagName: 'awesome',
limit: 20,
clientId: 'YOUR_CLIENT_ID'
});
feed.run();
</script>
limit(number) - 要添加的最大图像数。最高60分。
答案 9 :(得分:0)
<script>
var token = 'your_token',
userid = your_id,
num_photos = 12;
$.ajax({
url: 'https://api.instagram.com/v1/users/'+userid+'/media/recent',
dataType: 'jsonp',
type: 'GET',
data: {access_token: token, count: num_photos},
success: function(data){
console.log(data);
},
error: function(data){
}
});
</script>
https://rudrastyh.com/javascript/get-photos-from-instagram.html
答案 10 :(得分:0)
这是 2021 年的解决方案。
您需要使用 Instagram Basic Display API 来显示媒体项目。 (此答案不包括设置)。
假设上述设置正确,您可以使用limit参数来控制 API 返回的媒体结果数量。
默认值为 25(未设置限制),允许的最大值为 100。 (使用分页可能会获得更多结果,但这又是题外话)。
以下 cURL 代码示例使用的是 Me endpoint。
GET https://graph.instagram.com/me
?fields={fields}
&access_token={access-token}
&limit={required number of items}