Twitch API 通过 Javascript AJAX 搜索流 - 获取所有流

Twitch API search stream via Javascript AJAX - get all streams

我有一个 ajax 功能点击 Twitch API 以查找 "Starcraft" 流。

$.ajax({
  type: 'GET', 
  url: 'https://api.twitch.tv/kraken/search/streams?q=starcraft',
  headers: {'Client-ID': 'xxx'},
  success: function(json) {
    console.log(json);
}});

这个returnsObject {_total: 108, _links: Object, streams: Array[9]}。我想要 streams 数组来保存所有流(所有 108 个)。

我试过向 url 添加限制和偏移量,如下所示: https://api.twitch.tv/kraken/search/streams?limit=100&offset=0&q=starcraft 但这显然只适用于少于 100 个流的情况。任何熟悉 Twitch API 的人,有类似 limit=max 的东西吗?如果不是,解决方法是什么?

以下内容基于我对您的问题的评论,应该可以帮助您入门。我已经假设 offest 等同于页面。请注意,代码未经测试,仅作为起点。

还要确保处理来自 ajax 调用的失败,这样您就不会陷入无限循环。

fucntion GetAllStreams(){
    var arrStreams = [];
    var offset = 0;
    var total = -1;

    while(total < 0 || arrStreams.length < total)
    {
        $.ajax({
          type: 'GET', 
          url: 'https://api.twitch.tv/kraken/search/streams?limit=100&offset=' + offset++ + '&q=starcraf',
          headers: {'Client-ID': 'xxx'},
          success: function(json) {
            arrStreams.push(json.streams);
            console.log(json);
            console.log(arrStreams);
        }});
    }   

    retrun arrStreams;
}