2014-05-14 2 views
2

나는 내가 필요한 것을 아주 가까이 있지만, 뭔가 빠져 있어야합니다.Tumblr API가 큰 크기의 마지막 50 장의 사진을 매우 효과적으로 얻지 못합니다.

$.ajax({ 
    url: "http://api.tumblr.com/v2/blog{my-blog}/posts?limit=50", 
    dataType: 'jsonp', 
    data: { 
     api_key: "{my key}" 
    }, 
success: function(results){ 
    console.log(results); 
    var i = 0; 

    while (i < 50) { 

     var type = results.response.posts[i].type; 
     console.log(results.response.posts.length); 

      if (type == "photo") { 
       var getImages = results.response.posts[i].photos[i].alt_sizes[0].url; 
       $("#tumblr-posts").append("<div class='postbody'>" + "<img src=" + getImages + " /></div>"); 
      } 
     i++; 
    } 
} 
}); 

이 큰 크기에 내 블로그에서 첫 번째 이미지를 반환하지만 나는 또한 콘솔에 오류가 점점 오전 : 정의의 특성 'alt_sizes'을 읽을 수 없습니다

여기 내 코드입니다. 나는 약간의 변형을 시도했지만 내 논리를 구입하면 모든 포스트 .posts [i], 모든 사진 .photos [i] 및 alt_sizes [0] 배열의 첫 번째 이미지가 큰 이미지 여야합니다.

콘솔에 API 개체가 반환되도록 50 개의 개체가 표시되고 있습니다.

도움을 주시면 감사하겠습니다.

답변

3

당신은 예를 들어, 정의되지 않은 반환 이유입니다, postsphotos의 특정 속성을 선택 카운터 i을 사용하고 있습니다 :

i = 1; 
var getImages = results.response.posts[1].photos[1].alt_sizes[0].url; 

posts[1] 응답에서 두 번째 게시물입니다,하지만 photos[1]은을 말한다 두 번째 사진은 posts[1]이며 사진 1 장으로는 존재하지 않습니다.

게시물 당 두 장 이상의 사진을 확인하려면 루프를 만들어야하며, 사진 세트는 최대 10 장의 사진을 갖습니다. 당신은뿐만 아니라 그것을 위해 확인해야 할 수도 있으므로 가능한 고해상도 버전이없는 경우, 이전의 이미지에 그 언급

var i = 0; 

while (i < 50) { 

    var type = results.response.posts[i].type; 

    if (type == "photo") { 

    var photos = results.response.posts[i].photos; 

    for (var j = 0; j < photos.length; j++) { 
     console.log(photos[j].alt_sizes[0].url); 
    } 

    } 

    i++; 

} 

그 또한 가치, 그것은 다른 URL, 그 왼쪽 빈으로 폴백하지 않습니다.

+2

고맙습니다. 작동하게했습니다. (이 내용을 읽으시기 바랍니다.) – lharby