Twitter推特PHP错误


Twitter Tweets PHP Error

我无法包含我的tweets.php文件,当我尝试将其包含在php中时,它会出现以下错误:致命错误:无法将stdClass类型的对象用作第56行C:''examplep''htdocs''Documents''PHP''Projects''HassanTech''tweets.PHP中的数组

文件的源代码是:

    <?php
require_once('twitteroauth.php');

define('CONSUMER_KEY', 'REMOVED');
define('CONSUMER_SECRET', 'REMOVED');
define('OAUTH_TOKEN', 'REMOVED');
define('OAUTH_TOKEN_SECRET', 'REMOVED');
$connection = new TwitterOAuth(CONSUMER_KEY, CONSUMER_SECRET, OAUTH_TOKEN, OAUTH_TOKEN_SECRET);

$content = "";
if (!isset($username)){
    $username = "Hassan_Tech";
}
if (!isset($number)){
    $number = 5;
}
$feed = $connection->get('statuses/user_timeline', array('screen_name' => $username, 'count' => $number));
//$url = "http://api.twitter.com/1/statuses/user_timeline.xml?screen_name={$username}&count={$number}";
//$tweets = file_get_contents($url);
//$feed = new SimpleXMLElement($tweets);
function time_stamp($date){
    if (empty($date)){
        return "No date provided";
    }
    $periods = array("second", "minute", "hour", "day", "week", "month", "year", "decade");
    $lengths = array("60","60","24","7","4.35","12","10");
    $now = time();
    $unix_date = strtotime($date);
    if (empty($unix_date)){
        return "Bad date";
    }
    if ($now > $unix_date){
        $difference = $now - $unix_date;
        $tense = "ago";
    } else {
        $difference = $unix_date - $now;
        $tense = "from now";
    }
    for ($j = 0; $difference >= $lengths[$j] && $j < count($lengths)-1; $j++){
        $difference /= $lengths[$j];
    }
    $difference = round($difference);
    if ($difference != 1){
        $periods[$j] .= "s";
    }
    return "$difference $periods[$j] $tense";
}
for ($i = 0; $i <= $number-1; $i++){
    $status = $feed[$i]; // LINE 56
    //$status = $feed->status[$i];
    if (isset($status->id)){
        $id = $status->id;
    }
    $created_at = $status->created_at;
    $text = $status->text;
    $text = preg_replace("#(^|['n ])(['w]+?://['w]+[^ '"'n'r't< ]*)#", "''1<a href='"''2'" target='"_blank'">''2</a>", $text);
    $text = preg_replace("#(^|['n ])((www|ftp)'.[^ '"'t'n'r< ]*)#", "''1<a href='"http://''2'" target='"_blank'">''2</a>", $text);
    if (preg_match("/#('w+)/", $text, $matches)){
        foreach($matches as $match){
            $match = str_replace("#", "", $match);
            $text = preg_replace("/#('w+)/","<a href='"http://twitter.com/search?q={$match}'">$0</a>",$text);
            $text = str_replace("<a href='"http://twitter.com/search?q={$match}'">#","<span class='"hash'">#</span><a href='"http://twitter.com/search?q={$match}'" target='"_blank'">",$text);
        }
    }
    if (preg_match("/@('w+)/", $text, $matches)) {
        foreach($matches as $match) {
            $match = str_replace("@", "", $match);
            $text = preg_replace("/@('w+)/", "<a href='"http://www.twitter.com/{$match}'">$0</a>", $text);
            $text = str_replace("<a href='"http://www.twitter.com/{$match}'">@", "<span class='"at'">@</span><a href='"http://www.twitter.com/{$match}'" target='"_blank'">", $text);
        }
    }
    $content .= "<div class='"status'"><div class='"text'">{$text}</div>";
    if (isset($id)){
        $content .= "<div class='"date'"><a href='"http://twitter.com/Hassan_Tech/status/{$id}'" target='"_blank'" title='"".date("g:i A M jS", strtotime($created_at))."'">".time_stamp($created_at)."</a></div>";
    } else {
        $content .= "<div class='"date'"><a href='"'" target='"_blank'" title='"".date("g:i A M jS", strtotime($created_at))."'">".time_stamp($created_at)."</a></div>";
    }
    $content .= "</div>";
}
echo $content;
?>

请帮帮我,谢谢。我真的很感激。如果你需要任何额外的信息,请告诉我。非常感谢。我知道你们真的很聪明,一定能帮我。抱歉英语不好。

twitter API返回的响应为json格式,需要转换为数组。

$feed = json_decode($feed);

上面的行将把json转换成一个数组。在得到API响应后使用它。