Я работаю над проектом API поиска хештега в твиттере, используя твиттер Oauth от Abraham Williams.
Я получаю твиты с хэштегом, но у меня есть одна проблема.
Например,
есть только 2 твита, которые были введены в хэштег,
но моя функция получает последние 100 твитов и постоянно обновляет базу данных (я управлял дублирующимися элементами).
Как использовать since_id и max_id для исключения способа получения оставшихся твитов.
Мой код
//Hashtag Specification
$search = "#KejriwalFirSe";
$notweets = 100;
//Hastag Connection Starts
$search = str_replace("#", "%23", $search);
$tweets = $connection->get("https://api.twitter.com/1.1/search/tweets.json? q=".$search."&count=".$notweets.);
//Parsing the twitter Data
$string1 =json_encode($tweets);
$string = json_decode($string1, true);
echo count($tweets);
foreach($string['statuses'] as $tweet)
{
$text = trim($tweet['text']);
$id =$tweet['id'];
$user_name=$tweet['user']['screen_name'];
$profile_image=$tweet['user']['profile_image_url'];
$user_id=$tweet['user']['id'];
//TimeZone for india
$date = new DateTime($tweet['created_at']);
$date->setTimezone(new DateTimeZone('Asia/Kolkata'));
$formatted_date = $date->format('h:i, M d');
echo "<br>";
echo "<img src='".$profile_image. "'/>".' '. $id .'<br/> '.$user_name.'<br/> ' . $text.' <br/>'.$formatted_date ."</br><br/>";
//Conditional Statements for inserting and updating
$select_query=$con->query("SELECT Twitter_status FROM Twitter_status WHERE Tweet_ID = '$user_id'") or die (mysqli_error());
$result = $select_query->num_rows;
if(!$result){
//Inserting the data in to the table
$ins_sql="INSERT INTO Twitter_status (Tweet_ID,Twitter_User,Twitter_status,Twitter_Profile,TotalTweets_User) VALUES ('$user_id','$user_name','$text','$profile_image',1)";
$con->query($ins_sql);
}
else
{
$con->query("UPDATE Twitter_status SET Twitter_status='updated12',TotalTweets_User=TotalTweets_User+1 WHERE Tweet_ID='$user_id'");
}
}
После многих попыток я решил ошибку,
я передал массив, который проходит через твиты и сохраняет идентификатор статуса последнего твита в last_id (некоторая переменная для хранения).
Я сохранил last_id в переменной сеанса, чтобы передать значение этой переменной после обновления и передать это значение since_id.
Когда он загружается в первый раз, он сохраняет нулевое значение, а затем сохраняет идентификатор сессии.
if (!isset($_SESSION['last_id'])) {
$_SESSION['last_id'] = NULL;
echo "NULL";
} else {
echo $_SESSION['last_id'];
$last_id=$_SESSION['last_id'];
$tweets = $connection->get("https://api.twitter.com/1.1/search/tweets.json?q=".$search."&count=".$notweets."&since_id=".$last_id);
}
Других решений пока нет …