如何在PHP中使用Twitter Streaming API?

时间:2011-07-28 21:30:30

标签: php jquery json twitter

我已成功检索到用户时间线,以便在我的网站上显示

$tweets = simplexml_load_file("http://twitter.com/statuses/user_timeline/" . $userID . ".rss");

已经有一段时间了。但是,由于最近有越来越多的页面浏览量,我现在发现由于速率限制我遇到了可怕的HTTP 400错误。

我一直试图通过litte /没有运气来了解Twitter流媒体API(我没有使用OAuth / JSON的经验,因此它对我来说完全陌生)。

我查看了TwitStream的代码,该代码使用AJAX / JQuery提供对Search API的访问。不幸的是,我发布的内容不足以提供一致的搜索结果,所以这不是一个选项。

我没有发现Twitter上的文档非常有用(我确定如果JSON等对你来说不是很新)我还没有找到任何使用Streaming的简单端到端示例用于从PHP网页获取用户(即我)的最后x个帖子的API。有很多使用命令行实用程序(例如curl)打开流的示例,但在某些Web服务器上可能无法实现(我可能没有命令行访问权限)。

如果有人能为我提供简单的PHP / AJAX / JQuery代码,而不是Ruby / Python网页从用户时间线获取最后10条推文,我将非常感激。我不关心它是否会暂时进行民意调查,只需在页面加载上轻松获取推文就会很棒!

因此,为了澄清,我是在一个简单的例子(例如,不打扰CSS /使JSON响应人类可读等)类似于TwitStream但是用于获取用户时间线并在网页上显示它们。

3 个答案:

答案 0 :(得分:0)

你正在寻找这样的东西吗?

`<?php
$username = "TwitterUsername"; // Your twitter username.
$limit = "5"; // Number of tweets to pull in.

/* These prefixes and suffixes will display before and after the entire block of tweets. */
$prefix = ""; // Prefix - some text you want displayed before all your tweets.
$suffix = ""; // Suffix - some text you want displayed after all your tweets.
$tweetprefix = ""; // Tweet Prefix - some text you want displayed before each tweet.
$tweetsuffix = "<br>"; // Tweet Suffix - some text you want displayed after each tweet.

$feed = "http://search.twitter.com/search.atom?q=from:" . $username . "&rpp=" . $limit;

function parse_feed($feed, $prefix, $tweetprefix, $tweetsuffix, $suffix) {

$feed = str_replace("&lt;", "<", $feed);
$feed = str_replace("&gt;", ">", $feed);
$clean = explode("<content type=\"html\">", $feed);

$amount = count($clean) - 1;

echo $prefix;

for ($i = 1; $i <= $amount; $i++) {
$cleaner = explode("</content>", $clean[$i]);
echo $tweetprefix;
echo $cleaner[0];
echo $tweetsuffix;
}

echo $suffix;
}

$twitterFeed = file_get_contents($feed);
parse_feed($twitterFeed, $prefix, $tweetprefix, $tweetsuffix, $suffix);
?>`

我在http://www.instantshift.com/2009/05/25/10-twitter-hacks-for-your-wordpress-blog/

找到了这个

答案 1 :(得分:0)

尝试使用此课程 https://github.com/KartikTalwar/Twitter-Class

附带优秀的简单示例,只需几行代码即可显示大量细节

答案 2 :(得分:0)

在不执行以下两项操作之一的情况下从服务器中提取推文时,无法绕过速率限制:

1)按时间间隔下拉推文并将其缓存在您的网站上

2)让用户验证自己并使用他们的令牌来提取推文

当然,有一种很多更简单的方法可以做到这一点。在页面本身的javascript中请求时间线。这些时间线请求将计入​​用户查看页面而不是服务器的IP。

以下是一个包​​含一些javascript示例的网站:http://www.mivamerchant.com/blog/how-to-make-custom-twitter-feed-for-your-website