Instagram api计数不起作用

Posted

技术标签:

【中文标题】Instagram api计数不起作用【英文标题】:Instagram api count not working 【发布时间】: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 个项目。这没有任何意义。一个如何工作而另一个不工作?

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

【问题讨论】:

你得到data2.pagination.next_url吗? 如果你说你有另一个朋友返回正常结果。事实证明,您的程序实际上运行良好。您应该查看用户 6372114628 的隐私设置 @Ricardo 不,我没有,分页是空的。 我在第一个 URL 中获得了 5 个帖子,而不仅仅是一个.. All capabilities to read public media on a user's behalf will be disabled on December 11, 2018. 你使用了错误的 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 嘿,我只需要按照这些步骤操作吗? 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"
);

【讨论】:

以上是关于Instagram api计数不起作用的主要内容,如果未能解决你的问题,请参考以下文章

Instagram注销在iPhone中不起作用?

Flutter:登录 Instagram 时未获取代码(Instagram 登录不起作用)

Selenium 中的 Instagram XPath 不起作用? (Python)

Gmail 扩展程序邮件计数不起作用

输入类型='文件'在 Instagram 应用内浏览器中不起作用

Instagram max_id 不起作用