你好,twitter已经将它的API更新为1.1我面临一个非常严重的问题。你可以看到它已经发生了很多变化。例如,看看我的代码,在更新twitter API之后,它不再起作用了。
<?php
$content = "";
if (!isset($username)){
$username = "Hassan_Tech";
}
if (!isset($number)){
$number = 5;
}
$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->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;
?>
你可以帮我解决这个问题吗?我将衷心感谢您的帮助。谢谢。
答案 0 :(得分:0)
然后点击按钮“创建我的访问令牌”并复制以下Twitter应用代码:
然后从这个github存储库下载OAuth.php和twitteroauth.php,并将这些文件放在php脚本文件夹中 https://github.com/abraham/twitteroauth/tree/master/twitteroauth
最后你可以使用这段代码,我评论了弃用的代码
<?php
require_once('twitteroauth.php');
define('CONSUMER_KEY', '');
define('CONSUMER_SECRET', '');
define('OAUTH_TOKEN', '');
define('OAUTH_TOKEN_SECRET', '');
$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];
//$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;
?>
它适用于我,我希望它也适合你:)