0

今まで持っていたこのtwitterフィードを、OAuthを使ったnew(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;

それは素晴らしいことですが、今は2つの問題があります:

  1. JSON フィードの下部にエラーがあるようです。行番号は表示されますが、エラー情報は表示されず、PHP エラーのようです。何か案は?JSON の完全な貼り付け: http://pastebin.com/0Ba6cwY2

  2. この JSON 出力を配列などに入れてから、実際のツイート コンテンツとリンク以外のすべてを取り除くことはできますか?

4

1 に答える 1

0

問題を解決しました。フィードが既に 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);
于 2013-08-08T18:20:39.593 に答える