node.js - 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();
});
});
解决方案
尝试添加对象count: 200
以qs
获得每个请求大约 200 条推文。要获取较旧的推文,您必须max_id
正确设置参数,否则它将仅返回最新的推文。这些参数的详细含义请查看API 端点的参考资料。statuses/user_timeline
另外,请尝试阅读有关使用此方法处理时间线的指南。
推荐阅读
- javascript - 如果没有值显示默认日期 - date-picker - ReactJs
- xml - XSLT 使用字母和数字进行排序
- sql - 如何从 Join 新添加的列中创建新列?
- swift - 设置背景颜色隐藏 SKEmitterNode
- c - Linux内核中struct pid_type的含义
- rest - 如何为 OAuth1.0a 设置授权标头
- http - Penthao Kettle 从 URL 下载文件
- higher-order-functions - 最新的 Swift,紧凑的地图?
- laravel - 当日期和时间列是 Laravel 中的单独列时,我如何通过比较日期列和时间列来获得结果
- excel - 如何将从 Excel 日期选择器派生的日期与 =TODAY() 函数的日期进行比较?