Я только что создал сайт с новым хостом и загруженными битами и бобами только для того, чтобы обнаружить, что мой скрипт для получения твитов определенных пользователей сломался. Мне сказали, что я превысил свой предел в 150 вызовов на API Twitter.
В то время это могло иметь смысл, так как я все тестировал и много перезагружал страницу. Однако сегодня я сделал только пару попыток, но все, что я когда-либо получаю, это та же самая ошибка. Я даже переписал свой код так, чтобы он кэшировал все запрошенные твиты в течение часа, то есть самое большее 1 звонок в час, но он все еще не меняется. Вот код, который я использую для получения, кэширования и получения твитов;
function getUrl($url)
{
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 5);
$content = curl_exec($ch);
curl_close($ch);
return $content;
}
function getContent($file, $url, $hours = 1)
{
//vars
$CurrentTime = time();
$ExpireTime = $hours * 60 * 60;
$FileTime = filemtime($file);
if(file_exists($file) && ($CurrentTime - $ExpireTime < $FileTime))
{
//echo 'returning from cached file';
return json_decode(file_get_contents($file), true);
}
else
{
$content = getUrl($url);
$fh = fopen($file, 'w');
fwrite($fh, $content);
fclose($fh);
//echo 'retrieved fresh from '.$url.':: '.$content;
return json_decode($content, true);
}
}
$NumTweets = 3;
$AccountName = "TWITTERUSERNAME"; //this can be any username
$URL = "https://api.twitter.com/1/statuses/user_timeline.json?include_entities=true&include_rts=true&screen_name=".$AccountName."&count=".$NumTweets;
$XML = getContent('./lib/inc/tweets.txt', $URL);
Затем я использую следующее, чтобы определить твиты и время их создания, а затем распечатываю их в похожей усадьбе;
for($i = 0; $i < $NumTweets; $i++)
{
$Tweet['text'][$i] = formatTwitString($XML[$i]['text']);
$Tweet['time'][$i] = formatTwitTime($XML[$i]['created_at']);
}
Функции форматирования не имеют значения, я знаю, что они работают нормально.
Дело в том, что если я вручную ввожу переменную $ URL, которая генерируется в моем браузере, я могу без проблем загружать твиты, только при загрузке через веб-сайт я получаю сообщение об ошибке, я пытался скопировать содержимое используя этот метод и сохраняя его в файл на другом веб-сервере и заменяя Twitter-URL-адрес URL-адресом других серверов, и это работало нормально,
так что я не думаю, что с моим кодом что-то не так, но почему-то мои звонки в твиттер ополаскиваются, могут ли это быть другие сайты на том же хосте (iPage.com), использующие эти звонки в твиттер как-то?
Я немного растерялся, пожалуйста, помогите,
Спасибо.