从Twitter API获取所有推文和转发

3
我正在使用Twitter API工作,卡在了一个问题上。我的问题是我无法从Twitter中获取所有的推文和转推。我已经阅读了Twitter的文档link。他们提到:此方法只能返回用户最近3,200条推文。无论是否将include_rts设置为false,在请求此资源时,用户对其他状态的本地转推也包括在此总数中。 但是当我访问https://api.twitter.com/1.1/statuses/user_timeline.json?screen_name=xxxxx&count=968时,我只得到了198条记录的响应,而我有968条推文。
所以请帮助我如何从Twitter中获取所有记录以及我需要在URL中传递哪些参数才能获取所有的推文和转推?
请为更好的方法提供建议。
1个回答

7

计数 - 可选
指定要尝试检索的推文数量,最多每个不同请求200条。计数的值最好被视为返回推文数量的限制,因为在应用计数之后,暂停或删除的内容将被删除。我们包括转发在内的计数,即使没有提供include_rts也是如此。建议使用此API方法时始终发送include_rts=1。

从Twitter API中,您可以在单个请求中获取200条推文。您必须发起另一个请求以获取下一组推文。您只能获得198条推文,因为转发也被计算为推文。

max_id参数

解决上述问题的方法是使用一种处理数据流的技术,称为游标。应用程序不应该相对于列表顶部(经常更改)读取时间线,而应该相对于已处理过的推文ID读取时间线。这通过使用max_id请求参数实现。

要正确使用max_id,应用程序对时间线端点的第一个请求只应指定计数。在处理此类响应和后续响应时,请跟踪接收到的最低ID。将此ID作为下一个请求的max_id参数值传递,该请求仅返回ID小于或等于max_id参数值的推文。


2
感谢您的建议,我首先通过单个请求获取了前200条推文,然后再次发出请求,并在“since_id”参数中传递了最后一个数组的推文ID。但是输出结果相同。这是我的URL https://api.twitter.com/1.1/statuses/user_timeline.json?screen_name=xxxxx&since_id=here-last-tweet-id,请帮助我找出问题所在,下一条推文的确切参数是什么? - Gur Janjua
我已更新答案。而且since_id只返回从那个id开始的推文,所以你会再次得到相同的结果。你需要计算前200个id的方法。因此,我们可以使用max_id。如果这对你有帮助,请点赞。 - Shobi
1
感谢您的解决方案。 - Gur Janjua

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接