从JSON推特提要输出中剥离元数据,并在PHP中链接推文(1.1带OAuth)


Strip Metadata out of JSON Twitter Feed Output and Link Tweets in PHP (1.1 with OAuth)

我将把我过去拥有的这个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;

这很好,但现在我有两个问题:

  1. 在我的JSON提要底部似乎有一个错误。它给了我一个行号,但没有错误信息,看起来像是PHP错误。有什么想法吗?在此处完整粘贴JSON:http://pastebin.com/0Ba6cwY2

  2. 我可以把这个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'>"."&nbsp; &bull; &nbsp;"."</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);