Instagram api计数不起作用

时间:2018-03-30 03:11:39

标签: javascript jquery instagram instagram-api

我正在尝试api调用以获得10个帖子,但它只返回1个帖子,我一直在使用jquery代码来执行api调用:

$.ajax({
  url: 'https://api.instagram.com/v1/users/6372114628/media/recent',
  dataType: 'jsonp',
  type: 'GET',
  data: {
    count: num_photos,
    access_token: accesstoken
  },
  success: function(data2) {
    for (var i = 0; i < data2.data.length; i++) {
      $(element).append('<li><a href="' + data2.data[i].link + '" target="_blank"><img src="' + data2.data[i].images.low_resolution.url + '"></a></li>');

      //$(element).append('<li><a href="'+ data2.data[i].link +'" target="_blank" style="background-image:url('+data2.data[i].images.low_resolution.url+'); background-size:cover;"></a></li>');
    }
  },
  error: function(data2) {
    $(element).append('<li>' + data2 + '</li>');
  }
});

返回此内容:

https://api.instagram.com/v1/users/6372114628/media/recent?callback=jQuery1124040077233742195983_1522982885182&count=10&access_token=6372114628.890c38a.4e03aa92b121459c84e893c54c3c0ce1&_=1522982885183

我做错了什么?我只得到1个帖子,我期待着10个。我一直试图解决这个问题一个月,而且我没有得到任何接近。我讨厌这个愚蠢的事情。

我有另一位朋友,我能够设置她的Instagram没问题:

https://api.instagram.com/v1/users/1960989467/media/recent?access_token=1960989467.1677ed0.6ab08c98b04c4b5bac6410ed045a6dbc&count=9&callback=instafeedCache35472b641655efc8.parse

按预期返回9项。这没有任何意义。一个人如何工作而另一个人不工作?

此致 一个非常沮丧的开发者。

5 个答案:

答案 0 :(得分:5)

我和你有完全相同的问题。不幸的是,对于某些帐户,它们不会返回完整的图像列表。如果您将新图像添加到给定帐户,则很可能它将出现在Instagram API中。

我认为这是Instagram旧API的错误。不幸的是,由于旧API的错误报告程序已关闭,因此无法通知Instagram开发人员此错误。他们仅接受新Graph API的门票。

恕我直言,此时你无能为力。你正在使用哪个插件并不重要。对于一些Instagram帐户来说它已被打破。由于旧的Instagram API很快就会被弃用,我建议您慢慢转向新的Graph API。旧的API最近出了问题。我经常使用它,我几次没有这种情况。新添加的图像出现在API的响应中,但是无法获取较旧的图像。

答案 1 :(得分:3)

&#13;
&#13;
element='.feed';

$.ajax({
url: 'https://api.instagram.com/v1/users/6372114628/media/recent?callback=jQuery1124040077233742195983_1522982885182&count=10&access_token=6372114628.890c38a.4e03aa92b121459c84e893c54c3c0ce1&_=1522982885183',
dataType: 'jsonp',
type: 'GET',
data: {},
success: function(data2) {
	console.log(data2.data.length);
	for(var i = 0; i < data2.data.length; i++) {
		$(element).append('<li><a href="'+ data2.data[i].link +'" target="_blank"><img src="'+data2.data[i].images.low_resolution.url+'"></a></li>');
		//$(element).append('<li><a href="'+ data2.data[i].link +'" target="_blank" style="background-image:url('+data2.data[i].images.low_resolution.url+'); background-size:cover;"></a></li>');
	}
},
error: function(data2) {
	$(element).append('<li>'+ data2 +'</li>');
}
});
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.8.3/jquery.min.js"></script>
<div class="feed"></div>
&#13;
&#13;
&#13;

我得到了三个结果,你可以想到为什么这三张照片会通过,但其他人不会。

答案 2 :(得分:2)

似乎存在API问题,因为它只会为您提供该预期帐户的5个帖子。您应该使用他们的新GraphQl API SDK。

检查一下 https://developers.facebook.com/docs/instagram-api

答案 3 :(得分:1)

尝试插件调用&#34; instafeed.js&#34;。这是非常容易使用。

http://instafeedjs.com/

Example :
You have to specify userId and accessToken or client_id.

var feed = new Instafeed({
                        get: 'user',
                        tagName: 'instafeed',
                        userId: userid,
                        accessToken: key,
                        resolution: 'standard_resolution',
                        target: 'feed-images', // Id of `enter code here`
                        limit: 10,
                        template: '<li><a class="fancybox" rel="gallery1" href="\{\{image\}\}"><img src="\{\{image\}\}" /></a></li>',
                        after: function () {
                            // Effect like slider of fanvybox
                        },
                        error: function (error) {
                            console.log(error);
                        }
                    });
                    feed.run();

答案 4 :(得分:1)

Dude,你用来获取照片的访问令牌,它只提供5张照片,我想你要重新检查Instagram开发者部分,看看一切都是正确的,或者你错误地对照片施加了一些限制。因为那里只有5个id 所以,解决方案要么重新检查沙箱设置又要删除所有内容或删除它并创建一个新的。不要对那个感到沮丧。无论你做什么,你只得到5,但我也检查了你朋友的API,它产生了超过5,这就是为什么她得到超过5张照片。 只需重新检查或创建一个新的 这是要检查的jquery代码,

 if (number.min != numAnswer && numAnswer === 0) {
          this.errorMessage = "The answer must be more than " + number.min;
          return false;
        }