【发布时间】:2011-04-18 20:06:39
【问题描述】:
我想使用 php 在我的网页中显示来自 twitter 的 twitter 推文。谁有想法帮助我
提前致谢。
【问题讨论】:
-
这就像新的 Hello World 吧?
-
您好,我必须构建这个 twitter 应用程序,您能帮我做吗?谢谢。 -1
我想使用 php 在我的网页中显示来自 twitter 的 twitter 推文。谁有想法帮助我
提前致谢。
【问题讨论】:
您好,请查看推特 API:http://dev.twitter.com/pages/libraries#php
【讨论】:
除了 Twitter 开发者页面中列出的库之外,您还可以使用 Zend_Service_Twitter 来使用 Twitter API:
Zend_Service_Twitter为 » Twitter REST API 提供客户端。Zend_Service_Twitter允许您查询公共时间线。如果您为 Twitter 提供用户名和 OAuth 详细信息,它将允许您获取和更新您的状态、回复朋友、直接向朋友发送消息、将推文标记为收藏等等。
【讨论】:
如果您想要一个真正简单的解决方案,您甚至可以获取 twitter 小部件:http://twitter.com/goodies/widgets
【讨论】:
您可以向Dabr 学习,这是一个用 PHP 编写的 PHP 前端。它几乎包含 Twitter API 的所有功能。
【讨论】:
这是我为基本功能找到的最好的一个。它基于 javascript,因此显然您不会遇到 API 每小时调用限制的问题。它还为您提供了可以轻松修改的标记。
http://twitter.com/widgets/html_widget
哦,别担心所有人都会批评你的问题。我没有在本网站的任何地方阅读指南,您的问题必须显着提高才能给每个人留下深刻印象。 ;-)
【讨论】:
好的,所以我遇到了这篇文章并为答案而苦苦挣扎......但这是我的解决方案......完美运行......我看到的唯一问题是基于检索 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;
}
所以这是我的解决方案,但它完全符合我的要求 - 但你们中的大多数人都可以满怀希望地解决这个问题并进行必要的调整。我不是一个特别出色的编码员,所以如果我犯了明显的错误或者可以改进这个脚本,我将不胜感激。
【讨论】:
Twitter API 正在发生变化,显示要求不再是可选的。因此,除了现在要求使用 Oauth 之外,您还应该满足这些 display standards 的要求,因为它们不再是可选的。
有一些 PHP 库可以帮助访问 1.1 版的 Twitter API,我选择使用 CodeBird,而不是继续自己开发。我认为文档可能会更好一些。
【讨论】: