代码之家  ›  专栏  ›  技术社区  ›  Eugene

有没有一种方法可以为指定的用户从twitter上获取所有tweet?

  •  1
  • Eugene  · 技术社区  · 16 年前

    我想编写一个函数来获取指定用户的所有tweet,但它只返回最近的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');
    

    有办法克服这个问题吗?

    3 回复  |  直到 14 年前
        1
  •  8
  •   Johannes Gorset    16 年前

    Twitter有一个 API 您应该查询以检索诸如tweets之类的数据。它比爬行HTML更有效。

    这个 statuses/user_timeline api服务返回来自任何不受保护用户的tweet列表。这里有一个 example 这项服务,配置为检索用户frkt_uuu(那是我)的tweets。您可以通过多种方式自定义它返回的数据,例如通过附加 count URL的变量 like so 指定要检索的tweet数量。

    您应该使用XML解析器,例如 SimpleXML 而不是其他字符串函数,如 strpos 就像您演示的解析从API返回的数据一样。

        2
  •  0
  •   Don    16 年前

    Twitter Libraries 列出了PHP的libs。如果你能抓住一个单一的用户所有的推特或没有,恐怕我不知道,但libs应该是一个好的起点。

        3
  •  0
  •   Abbas    14 年前

    通过调用 GET statuses/user_timeline ,有关详细信息,请查看此处: https://dev.twitter.com/discussions/1157