新手咨询:能否通过Twitter API一次性获取一周Timeline数据?
Twitter API 一周时间线数据获取方法
无法一次性拉取一周的所有推文,因为Twitter API的用户时间线接口有单次请求的最大返回条数限制:
- 旧版v1.1的
statuses/user_timeline接口,单次最多返回200条推文; - 新版v2的
/users/{id}/tweets接口,单次最多返回100条推文。
一周的推文数量通常远超过这个上限,所以必须通过分页调用接口来逐步获取。
- 旧版v1.1的
实现方式是利用分页参数循环请求,直到覆盖一周的时间范围:
- v1.1接口:使用
max_id参数(每次传入上一次返回结果中最旧推文的ID减1,来获取更早的推文),也可以结合since_id限定起始时间; - v2接口:使用返回结果中的
pagination_token(下一页令牌),每次请求带上这个参数来获取更早批次的推文。
每次请求后,检查返回推文里最早的发布时间是否早于一周前,如果还没到,就继续调用,直到满足时间条件或者没有更多推文可获取。
- v1.1接口:使用
调用时要遵守API的速率限制:
- v1.1的
statuses/user_timeline接口,15分钟内最多允许15次请求; - v2的
/users/{id}/tweets接口,15分钟内最多允许900次请求。
循环调用时要控制请求频率,避免触发限流导致请求失败。
- v1.1的
内容的提问来源于stack exchange,提问作者Picnic
相关产品推荐
相关产品推荐

