我想编写一个函数来获取指定用户的所有推文,但最近只返回20个。
我想出了类似的东西:
function getTweets($user) {
$page = file_get_contents("http://twitter.com/{$user}");
$from = strpos($page, "<ol id='timeline' class='statuses'>");
$to = strpos($page, "</ol>");
$length = $to - $from;
$page =substr($page, $from, $length);
echo $page;
}
getTweets('user_name');
有没有办法绕过那个?
答案 0 :(得分:8)
Twitter有一个API,你应该查询它来检索推文等数据。它比抓取HTML效率更高。
statuses/user_timeline API服务返回来自任何未受保护用户的推文列表。这是此服务的example,配置为检索用户FRKT_的推文(就是我)。您可以通过多种方式自定义返回的数据,例如将count
变量附加到网址like so,以指定您要检索的推文数量。
您应该使用诸如SimpleXML
之类的XML解析器,而不是像您演示的strpos
之类的其他字符串函数来解析从API返回的数据。
答案 1 :(得分:0)
Twitter Libraries列出了用于php的库。如果你能抓住一个用户的所有推文,我恐怕我不知道但是lib应该是一个很好的起点。
答案 2 :(得分:0)
通过调用GET statuses/user_timeline,每位用户最多只返回3200条推文,详情请点击此处: https://dev.twitter.com/discussions/1157