【问题标题】:Instagram api count not workingInstagram api计数不起作用
【发布时间】:2018-03-30 03:11:39
【问题描述】:

我正在尝试调用 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 个项目。这没有任何意义。一个如何工作而另一个不工作?

真诚地, 一个非常沮丧的开发者。

【问题讨论】:

标签: javascript jquery instagram instagram-api


【解决方案1】:

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

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

恕我直言,此时您无能为力。您使用的插件无关紧要。某些 Instagram 帐户已损坏。由于旧的 Instagram API 很快就会被弃用,我建议慢慢迁移到新的 Graph API。旧 API 最近有问题。我经常使用它,我有几次这样的情况。新添加的图像出现在 API 的响应中,但是无法获取旧图像。

【讨论】:

  • 所以我所要做的就是添加新帖子?你说的是这个吗?
  • 嘿,我只需要按照这些步骤操作吗? developers.facebook.com/docs/instagram-api/getting-started
  • @user979331 您可以开始添加新帖子,它们应该会出现在 Instagram API 中。如果您打算长期使用 Instagram API,您应该开始考虑在 Facebook 上迁移到新的 Graph API。但请记住,目前 Graph API 仅适用于 Instagram 企业帐户
  • 这里有同样的问题。目前还没有答案。它目前刚刚坏掉。沙盒 api 似乎工作正常。
【解决方案2】:

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>');
}
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.8.3/jquery.min.js"></script>
<div class="feed"></div>

我得到了三个结果,你可以想想为什么这三个图片通过了,而其他的没有。

【讨论】:

    【解决方案3】:

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

    检查这个 https://developers.facebook.com/docs/instagram-api

    【讨论】:

      【解决方案4】:

      尝试插件调用“instafeed.js”。这是非常容易使用。

      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();
      

      【讨论】:

      • 我试图避免 Instafeed.js
      • 这并不能解决问题。使用这个库你仍然会得到同样的错误。
      【解决方案5】:

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

      var reviews = document.querySelector("put your selector here"),
          access_id = "6372114628.890c38a.4e03aa92b121459c84e893c54c3c0ce1",
          post_count = 10;
      var query = jQuery.ajax({
          url: `https://api.instagram.com/v1/users/self/media/recent?access_token=${access_id}&count=${post_count}&callback=?`,
          error: function () {
              console.error();
          },
          success: function (result) {
              result.data.map(function (item) {
                  reviews.innerHTML += `<a class="images" href="${item.link}" target="_blank"><img src="${item.images.low_resolution.url}" /></a>`;
              });
          },
          type: "GET",
          dataType: "jsonp"
      });
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多