Счетчик api Instagram не работает

Я пытаюсь сделать вызов 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 ответов


попробуйте вызовы плагинов " 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();

У меня точно такая же проблема, как вы. Для некоторых учетных записей, к сожалению, они не возвращают полный список изображений. Если вы добавите новое изображение в данный аккаунт, скорее всего, оно появится в Instagram API.

Что я считаю, что это ошибка в Instagram old API. К сожалению, не удается уведомить разработчиков Instagram об этой ошибке, так как программа отчетов об ошибках для старого API закрыта. Они принимают билеты только для нового API Graph.

IMHO вы ничего не можете сделать на этом точка. Не имеет значения, какой плагин вы используете. Он сломан для некоторых учетных записей Instagram. Поскольку старый API Instagram скоро будет устаревшим, я бы предложил медленно переходить к новому API Graph. Старый API недавно был багги. Я использую его много, и у меня была такая ситуация несколько раз. Новые добавленные изображения появляются в ответах от API, однако невозможно получить более старые изображения.


кажется, есть проблема API, потому что он просто дает вам 5 сообщений этой предполагаемой учетной записи. вы должны использовать их новые SDK API GraphQl.

проверить это https://developers.facebook.com/docs/instagram-api


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>

Я получил три результата, вы можете подумать, почему эти три фотографии проходят, но другие нет.


чувак, токен доступа, который вы используете для получения фотографий, он дает только 5 фотографий, я думаю, вам нужно перепроверить раздел разработчика Instagram, чтобы увидеть, что все правильно, или вы ошибочно поставили некоторые ограничения на фотографии. Потому что там только 5 удостоверений личности.
Итак,решение либо повторно проверить настройки песочницы и все, или удалить это и создать новый. Не расстраивайтесь по этому поводу. Потому что, что бы вы ни делали, вы получаете только 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"
});