API Instagram: неперехваченная ошибка типа

Я получаю следующую ошибку, хотя я действительно не знаю, почему: Uncaught TypeError: Cannot read property 'id' of undefined

Вот блок кода, который выдает ошибку:

//get elseCount
$.ajax({
    type: "GET",
    dataType: "jsonp",
    cache: false,
    url: "https://api.instagram.com/v1/tags/crookedspaces/media/recent/?count=100&access_token=MYTOKEN",
    success: function(data) {
        confirm("Else Count running");
        for (var e = 0; e < imageCount; e++) {
            var igUID = data.data[e].user.id;
            if(igUID !== "16741082") {
                //confirm("Else count: " + elseCount + ".");
                //console.log("Else portion of code ran " + elseCount + " time(s).");
                ++elseCount;
            }
        }
        console.log("Else count:" + elseCount + ".");                
    }
});

person tbremer    schedule 26.09.2012    source источник
comment
вы заменяете MYTOKEN своим фактическим токеном в своем коде?   -  person Sharjeel Ahmed    schedule 26.09.2012
comment
@sushanthreddy data.data.user.id; должен получить идентификатор пользователя, который когда-либо помечал загруженное изображение.   -  person tbremer    schedule 26.09.2012
comment
@monotheist да MYTOKEN заменяется   -  person tbremer    schedule 26.09.2012
comment
Можете ли вы поместить этот URL-адрес в браузер, например chrome api .instagram.com/v1/tags/crookedspaces/media/recent/ и вставьте результаты, соответственно замените токен.   -  person Sharjeel Ahmed    schedule 26.09.2012


Ответы (2)


Получает данные от разных пользователей

Так что используйте этот data.data[0].user.id

Если вы хотите, вы можете поместить индекс в цикл, но сначала попробуйте сделать это выше, это должно сработать.

Также замените Replace for (var e = 0; e ‹ imageCount; e++) на

for (var e = 0; e < data.data.length; e++) 
person Sharjeel Ahmed    schedule 26.09.2012
comment
монотеист, я изменил код в соответствии с вашим предложением, но все равно получаю ту же ошибку. - person tbremer; 26.09.2012
comment
вы снова получаете ту же ошибку, можете ли вы расширить пользователя и показать нам снимок экрана. - person Sharjeel Ahmed; 26.09.2012
comment
Хорошо, я снова изменил свой код, и использование [0] или [1] или что-то еще не возвращает ошибку, однако, если я использую свою переменную (e), возникает ошибка. - person tbremer; 26.09.2012
comment
Обновил мой ответ, попробуйте новый. - person Sharjeel Ahmed; 26.09.2012
comment
Это работает, однако возвращает только 60 результатов, но для моего вопроса это ответ, но не так, как мне хотелось бы. Проблема API Instagram больше, чем кодирование. Спасибо! - person tbremer; 26.09.2012

Похоже, вы неправильно читаете свой объект json.

как выглядит console.log(data)??

Похоже, вам нужно прочитать данные, например

data.data[0].user.id   // To access the first item in the array

Если вы хотите использовать любой другой идентификатор пользователя, замените 1 на этот индекс.

Чтобы повторить и использовать это значение, вы можете использовать цикл $.each для daata.data.

person Sushanth --    schedule 26.09.2012
comment
console.log(данные); тянет довольно большой массив из 60 элементов. - person tbremer; 26.09.2012
comment
Пара элементов массива должна помочь - person Sushanth --; 26.09.2012
comment
вот скриншот двух частей массива. - person tbremer; 26.09.2012
comment
Попробуйте получить доступ к такой переменной, как эта data.data[0].user.id ...... т.е., если вы хотите получить доступ к 1-му элементу в массиве и т. д. - person Sushanth --; 26.09.2012
comment
Попробуйте console.log(data.data[0].user.id) и проверьте, что вы получаете - person Sushanth --; 26.09.2012
comment
Я успешно возвращаю идентификатор пользователя. Похоже, ошибка происходит где-то при использовании моей переменной (e). - person tbremer; 26.09.2012