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();
});
});
答案 0 :(得分:1)
尝试在qs
对象中添加count: 200
,以使每个请求获得约200条推文。要获取较旧的推文,您必须正确设置max_id
参数,否则它将仅返回最新的推文。看看reference of statuses/user_timeline
API endpoint,了解这些参数的详细含义。
此外,尝试使用此方法阅读guide on working with timelines。