Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/425.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Soundcloud API分页-8000的偏移限制是否意味着您可以';你不能得到一份长度超过8000的完整清单吗?_Javascript_Pagination_Soundcloud - Fatal编程技术网

Javascript Soundcloud API分页-8000的偏移限制是否意味着您可以';你不能得到一份长度超过8000的完整清单吗?

Javascript Soundcloud API分页-8000的偏移限制是否意味着您可以';你不能得到一份长度超过8000的完整清单吗?,javascript,pagination,soundcloud,Javascript,Pagination,Soundcloud,我正试图找出如何通过分页检索60k+追随者的列表。现在,我就是这样做的(我猜这在语法上可能会更好): var数组=[]; 变量页长度=200; var num_pages=40; var偏移=0; 对于(i=0;i

我正试图找出如何通过分页检索60k+追随者的列表。现在,我就是这样做的(我猜这在语法上可能会更好):

var数组=[];
变量页长度=200;
var num_pages=40;
var偏移=0;
对于(i=0;i
根据API文档,我将
页面长度设置为最大200。例如,如果我将
num_pages
增加到45,则该迭代的结果
followers[]
数组只包含未定义的记录,因为
num_pages*page_length
将超过8000偏移限制


那么,有没有办法将8000多条记录放入这个阵列呢?

您必须注意,SoundCloud刚刚“更新”了他们的API,3月3日之后,您将无法使用带有“偏移”参数的API。您必须更改代码才能在将来正常工作

因此,首先,SoundCloudAPI默认将限制设置为50,您可以将限制设置为200(最大值)

第二件事是-发送请求后,您的响应通常包含一个“next_href”光标,您必须调用该光标才能获得下一个,例如200个追随者。SoundCloud现在改变了这一点。如果您不将“linked_partitioning”参数添加到URL,您将只获得前200个追随者。如果添加该参数,则会得到下一个\u href

我不明白你为什么把num_pages设置为40?在你的情况下,我会抓到200个追随者,把他们放在我的阵营里。然后使用next_href-cursor获取接下来的200个追随者(依此类推…)。如果响应中没有下一个_href,则没有任何追随者

在JavaScript中,我认为如下所示:

var页面大小=200;
SC.get(“/users/”+id+“/followers”,{limit:page\u size,linked\u partition:1},函数(followers){
//在这里每200个追随者做你的事情(只要有追随者)
});

我知道我做这件事有点晚了,但我通过“下一步”按钮上的单击事件成功地使它工作,如下所示:

var-nextCursor;
函数next(){
SC.get('/users/'+userId+'/followers'{
限额:200,
链接分区:1,
光标:nextCursor
}).then(功能(追随者){
var nextHref=followers.next_href;
nextCursor=nextHref.substr(nextHref.length-13);
$(followers.collection)。每个(函数(i){
console.log(followers.collection[i])
});
});
}
$(“#下一个btn”)。单击(函数(){
next();

});@Timmerz我知道这些限制。该用户试图从一个请求中获得200多个。我只是好奇为什么没有一种实用的方法来检索超过8000的结果集…似乎不切实际基于他在该线程中的回答,8000似乎是最大偏移量。我不熟悉SoundCloudAPI,但我认为他们不想通过api提供大量数据。@Timmerz yea这就是我担心的。我想知道是否有其他方法检索这个大列表。可能是通过屏幕刮板或其他什么东西…你的用例是什么?60k是通过api提供的大量数据。比如说他们有一些1M+的?你的限额是多少?明白我在说什么吗?您可能只是过载了他们的api。