gpt4 book ai didi

ajax - 尝试使用 jQuery 访问 Instagram API

转载 作者:行者123 更新时间:2023-12-01 06:37:11 25 4
gpt4 key购买 nike

我正在尝试使用 Instagram API,并在 do-while 循环中发出 AJAX 请求,直到 next_url 为 null。我想要这段代码做的就是通过发出连续的请求来获取所有关注者,直到完成为止。这段代码有什么问题?

当我删除 do-while 循环时,它不会给我一个错误,但是一旦我在循环中使用 AJAX 请求,它就永远不会停止。显然,$next_url 字符串没有更改为新获取的 next_url - 为什么?怎么了?

$(document).ready(function(e) {
$('#fetch_followers').click(function(e) {
var $next_url = 'https://api.instagram.com/v1/users/{user-id}/followed-by?access_token={access-token}&count=100';
var $access_token = '{access-token}';
var $is_busy = false;
var $count = 0;
do {
while($is_busy) {}
$.ajax({
method: "GET",
url: $next_url,
dataType: "jsonp",
jsonp : "callback",
jsonpCallback: "jsonpcallback",
success: function(data) {
$is_busy = true;
$.each(data.data, function(i, item) {
$("#log").val($("#log").val() + item.id + '\n');
});
$("#log").val($("#log").val() + data.pagination.next_url + '\n');
$next_url = data.pagination.next_url;
},
error: function(jqXHR, textStatus, errorThrown) {
$is_busy = true;
//alert("Check you internet Connection");
$("#log").val($("#log").val() + 'Error\n');
},
complete: function() {
++$count;
$is_busy = false;
}
});
} while($next_url !== '' || $count <= 50);
});
});

在我的逻辑失败后,我添加了可以中断 do-while 循环的 $count 变量,因为 do-while 循环无限运行。添加后仍然无限运行,不知道为什么。

最佳答案

让函数在 ajax 成功回调中调用自身,并将新的 url 作为参数:

$(document).ready(function() {
$('#fetch_followers').click(function() {
var $access_token = '{access-token}';
pollInstagram('https://api.instagram.com/v1/users/{user-id}/followed-by?access_token={access-token}&count=100');
});
});

function pollInstagram(next_url, count) {
$.ajax({
method: "GET",
url: next_url,
dataType: "jsonp",
jsonp: "callback",
jsonpCallback: "jsonpcallback",
success: function(data) {
$.each(data.data, function(i, item) {
$("#log").val($("#log").val() + item.id + '\n');
});
$("#log").val($("#log").val() + data.pagination.next_url + '\n');

// If the next url is not null or blank:
if( data.pagination.next_url && count <=50 ) {
pollInstagram(data.pagination.next_url, ++count);
}
},
error: function(jqXHR, textStatus, errorThrown) {
//alert("Check you internet Connection");
$("#log").val($("#log").val() + 'Error\n');
}
});
}​

关于ajax - 尝试使用 jQuery 访问 Instagram API,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11712106/

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