<?php
function saveTweets($screen_name) {
$db = array("h"=>"localhost", "u"=>"user", "p"=>"pass", "n"=>"db");
$dbconnect = mysql_connect($db['h'], $db['u'], $db['p']);
$dbselect = mysql_select_db($db['n']);
$screen_name = mysql_real_escape_string(strtolower(trim($screen_name)));
if (!$screen_name) {
echo "<p><strong>Error: No screen name declared.</strong></p>\n"; return false;
}
$row = mysql_query("SELECT `id` FROM `twitter` WHERE `screen_name`='$screen_name' ORDER BY `id` DESC LIMIT 1");
$row = mysql_fetch_array($row);
$last_id = $row['id'];
$url = "http://api.twitter.com/1/statuses/user_timeline.xml?screen_name=$screen_name" ;
if ($last_id) {
$url .= "&since_id=$last_id" ;
}
$ch = curl_init($url);
curl_setopt ($ch, CURLOPT_RETURNTRANSFER, TRUE);
$xml = curl_exec ($ch);
curl_close ($ch);
$affected = 0;
$twelement = new SimpleXMLElement($xml);
foreach ($twelement->status as $status) {
$text = mysql_real_escape_string(trim($status->text));
$time = strtotime($status->created_at);
$id = $status->id;
mysql_query("INSERT INTO `twitter` (`id`,`screen_name`,`time`,`text`,`hidden`) VALUES ('$id','$screen_name','$time','$text','n')");
$affected = $affected + mysql_affected_rows();
}
return "<p>".number_format($affected)." new tweets from $screen_name saved.</p>\n" ;
}
echo saveTweets('screenName');
?>
我试图用这个脚本来抓取我的twitter feed。但它会返回0个新的推文,它们是从'screenName'保存的。有人可以帮忙吗?PHP mysql Twitter API 500错误
注意:我实际上用许多帐户和我的朋友取代了screenName。
但我试图更换像“http://api.twitter.com/1.1/statuses/user_timeline.xml”这样的网址,但它不能正常工作:( –
现在它需要身份验证,因此您必须使用twitter oauth库来获取结果。这里是链接twitter控制台,[https://dev.twitter.com/console]。在这里你可以看到status/user_timeline不会返回结果没有登录 –
你能解释一下吗?说实话这是第一次我正在使用API –