我将把我过去拥有的这个twitter提要切换到使用OAuth的新的(er)v1.1 API。
我使用别人做的Github项目获得了提要服务器端,然后将其输出到一个变量中并进行响应。唯一的问题是我不熟悉JSON。
require_once("twitteroauth/twitteroauth/twitteroauth.php"); //Path to twitteroauth library
$twitteruser = "goinnative";
// removed token and related variables for this example
function getConnectionWithAccessToken($cons_key, $cons_secret, $oauth_token, $oauth_token_secret) {
$connection = new TwitterOAuth($cons_key, $cons_secret, $oauth_token, $oauth_token_secret);
return $connection;
}
$connection = getConnectionWithAccessToken($consumerkey, $consumersecret, $accesstoken, $accesstokensecret);
$feed = $connection->get("https://api.twitter.com/1.1/statuses/user_timeline.json?screen_name=".$twitteruser."&count=".$notweets);
echo $feed;
这很好,但现在我有两个问题:
在我的JSON提要底部似乎有一个错误。它给了我一个行号,但没有错误信息,看起来像是PHP错误。有什么想法吗?在此处完整粘贴JSON:http://pastebin.com/0Ba6cwY2
我可以把这个JSON输出放进一个数组或其他什么东西中,然后去掉除了实际推特内容和链接之外的所有内容吗?
解决了问题。我没有意识到我的提要已经在PHP数组中了。因此,解决我的问题很简单,只需在foreach循环中回显该数组的所有[文本]口袋即可。
$tweets = $connection->get("https://api.twitter.com/1.1/statuses/user_timeline.json?screen_name=".$twitteruser."&count=".$notweets);
$tweetOutput="";
foreach ($tweets as $tweets) {
$tweetOutput .= $tweets->text."<span class='tweetSeperator'>"." • "."</span>";
}
输出推文后,我所要做的就是linkify(http、提及和标签):
function linkifyTweet($statusText)
{
$statusText = preg_replace('/(https?:'/'/'S+)/', '<a href="'1">'1</a>', $statusText);
$statusText = preg_replace('/(^|'s)@('w+)/', ''1@<a href="http://twitter.com/'2">'2</a>', $statusText);
$statusText = preg_replace('/(^|'s)#('w+)/', ''1#<a href="http://search.twitter.com/search?q=%23'2">'2</a>', $statusText);
return $statusText;
}
echo linkifyTweet($tweetOutput);