首页 > 解决方案 > Twitter - 我只收到来自 user_timeline 的 20 条推文

问题描述

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)
});

我正在尝试获取所有推文,但由于某种原因我只得到 20 条,即使 API 调用最多可以获取 3200 条推文。

所以我想知道如何获取该帐户的所有推文(目前为 700 多条),我看到列出了一个计数,但由于某种原因,我找不到开始细分的方法。

希望有人可以帮助我。

编辑:

在 pii_kee 的回答之后,我得出的结论是,这是获得所有推文所需要做的:

    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();
      });
    });

标签: node.jstwitter

解决方案


尝试添加对象count: 200qs获得每个请求大约 200 条推文。要获取较旧的推文,您必须max_id正确设置参数,否则它将仅返回最新的推文。这些参数的详细含义请查看API 端点的参考资料。statuses/user_timeline

另外,请尝试阅读有关使用此方法处理时间线的指南。


推荐阅读