代码之家  ›  专栏  ›  技术社区  ›  Lars Hendriks

twitter-我只收到20条来自用户时间表的twitter

  •  0
  • Lars Hendriks  · 技术社区  · 7 年前
    var options = {
    method: 'GET',
    url: 'https://api.twitter.com/1.1/statuses/user_timeline.json?',
    qs: { "screen_name": "Screen_name"} ,
    json: true,
    headers: {
      "Authorization": "Bearer " + token.access_token
      }
    };
    
    
    request(options, function(error, response, body){
       console.log("length",body.length)
    });
    

    我正在尝试获取所有tweets,但出于某种原因,我只获得20条,如果API调用最多可以获取3200条tweets。

    所以我想知道我怎样才能得到这个帐户的所有tweets(目前为700多条) 我看到一个计数被列出,但出于某种原因,我找不到开始一段的方法。

    希望有人能帮助我。

    编辑:

    在pii eu-kee回复后,我得出结论,这是获得所有tweet需要做的:

        var firstOptions = {
        method: 'GET',
        url: 'https://api.twitter.com/1.1/statuses/user_timeline.json',
        qs: {"screen_name": "Company", "count": 200},
        json: true,
        headers: {
          "Authorization": "Bearer " + token.access_token
        }
      };
        var array = [];
        var go = true;
        async.whilst(function () {
          return go;
        },function(next){
          request(firstOptions, function (error, response, body) {
            firstOptions.qs.max_id = body[body.length - 1].id;
              array = array.concat(body);
              if(body.length !== 200) {
                go = false;
              }
            next();
          });
        });
    
    1 回复  |  直到 7 年前
        1
  •  1
  •   pii_ke    7 年前

    尝试添加 count: 200 在 qs 对象获取每个请求大约200条tweets。要获取旧的tweets,您必须设置 max_id 参数正确,否则只返回最近的tweets。看看 reference of statuses/user_timeline API endpoint 这些参数的详细含义。

    另外,试试看这个 guide on working with timelines 使用这种方法。

    推荐文章