gpt4 book ai didi

jquery - Tumblr API 获取最后 50 张大尺寸照片帖子不太有效

转载 作者:行者123 更新时间:2023-12-01 03:39:58 25 4
gpt4 key购买 nike

我有一些非常接近我需要的东西,但我一定缺少一些东西。

这是我的代码:

$.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] 数组中的第一个图像,它应该是大图像。

控制台显示正在返回 50 个对象,因此对 API 的调用正常。

非常感谢任何帮助。

最佳答案

您正在使用计数器i来选择postsphotos的特定属性,这就是它返回未定义的原因,例如:

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

posts[1] 是响应中的第二个帖子,但 photos[1] 指的是 posts[1] 的第二张照片> 并且可能不存在,因为它是单个照片帖子。

您需要创建另一个循环来检查每个帖子是否有不止一张照片,照片集最多包含十张照片。

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,它留空,因此您可能还需要检查这一点。

关于jquery - Tumblr API 获取最后 50 张大尺寸照片帖子不太有效,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23651343/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com