我如何使用PHP显示来自Twitter的Twitter推文

时间:2010-09-29 13:38:53

标签: php twitter tweets

我想在Twitter上使用php在我的网页上显示Twitter推特。任何人都有想法帮助我

提前谢谢。

7 个答案:

答案 0 :(得分:6)

您好请看一下twitter API:http://dev.twitter.com/pages/libraries#php

答案 1 :(得分:2)

除了Twitter Developer Pages中列出的库之外,您还可以使用Zend_Service_Twitter来使用Twitter API:

  

Zend_Service_Twitter为»Twitter REST API提供客户端。 Zend_Service_Twitter允许您查询公共时间轴。如果您提供Twitter的用户名和OAuth详细信息,它将允许您获取并更新您的状态,回复朋友,指导消息朋友,将推文标记为收藏等等。

答案 2 :(得分:2)

如果你想要一个真正简单的解决方案,你甚至可以抓住推特小部件:http://twitter.com/goodies/widgets

答案 3 :(得分:1)

您可以从Dabr学习,这是一个用PHP编写的PHP前端。它几乎包含了Twitter API的所有功能。

答案 4 :(得分:1)

这是我发现的基本功能最好的一个。这是基于javascript的,所以显然你不会遇到每小时API调用限制的问题。它为您提供了可以轻松修改的标记。

http://twitter.com/widgets/html_widget

哦,不要担心所有批评你问题的人。我没有在本网站的任何地方阅读指南,你要提出的问题必须要大大提高才能给每个人留下深刻印象。 ; - )

答案 5 :(得分:1)

好吧所以我遇到了这个帖子并且在答案中挣扎......但这是我的解决方案...完美运行...我看到的唯一问题是基于检索RSS提要,Twitter很漂亮热衷于摆脱 - 但对于一个简单的解决方案,它有魅力。

function twitter_status(){

$twitter_name = "YOUR_TWITTER_USERNAME";
$myFile = "http://api.twitter.com/1/statuses/user_timeline.rssscreen_name=".$twitter_name;

$dom = new DOMDocument();
$dom -> load($myFile);

$items = $dom->getElementsByTagName('item');

$max_items = 1; // Number of tweets to return.
$count = 0;

foreach ($items as $item) {
    // Select all the elements in the XML document named "Description"
    // The different elements available are Title, Description, pubDate, guid, link and twitter:source
    // You can find this out by opening the link to your twitter rss feed

    $tweets = $item->getElementsByTagName('description');
    $tweet_string = $tweets->item(0)->nodeValue;
    $tweet_string = substr($tweet_string,strpos($tweet_string,":")+2);


    $tweet_date = $item->getElementsByTagName('pubDate');
    $tweet_date = $tweet_date->item(0)->nodeValue;
    $tweet_date = substr($tweet_date,0,16); // Get rid of the excess times at the end of the date

    echo ("<li class='timestamp tweet_".$count."'>Posted ".$tweet_date."</li><li class='tweet tweet_".$count."'>".makelink($tweet_string)."</li>");

    $count = $count+1;
    if ($count>=$max_items){ break; }
    }
}

function makeLink($string){
// Function to convert url to a link

    /*** make sure there is an http:// on all URLs ***/
    $string = preg_replace("/([^\w\/])(www\.[a-z0-9\-]+\.[a-z0-9\-]+)/i", "$1http://$2",$string);

    /*** make all URLs links ***/
    $string = preg_replace("/([\w]+:\/\/[\w-?&;#~=\.\/\@]+[\w\/])/i","<a target=\"_blank\" href=\"$1\">$1</A>",$string);

    /*** make all emails hot links ***/
    $string = preg_replace("/([\w-?&;#~=\.\/]+\@(\[?)[a-zA-Z0-9\-\.]+\.([a-zA-Z]{2,3}|[0-9]{1,3})(\]?))/i","<A HREF=\"mailto:$1\">$1</A>",$string);

    return $string;
}

所以这是我的解决方案,但是它对我想要的东西非常具体 - 但大多数人都希望能够解决这个问题并进行必要的调整。我不是一个特别伟大的程序员,所以如果我犯了明显的错误或者可以改进这个剧本我会很感激。

答案 6 :(得分:0)

Twitter API正在发生变化,显示要求不再是可选的。因此,除了现在要求使用Oauth之外,您还应该满足这些display standards,因为它们不再是可选的。

有些PHP库可以帮助访问Twitter API的1.1版本,我选择使用CodeBird而不是继续推进自己的未来。我认为文档可能会好一些。