{
"code":420,
"error_type":"OAuthRateLimitException",
"error_message":"You have exceeded the maximum number of requests per hour. You have performed a total of 253 requests in the last hour. Our general maximum request limit is set at 30 requests per hour."
}
Я просто заметил, что веб-сайт клиентов, которого я ухаживаю, прекратил показывать фид Instagram, поэтому я загрузил URL-адрес канала прямо в браузер, и я получил вышеуказанную ошибку. Я не думаю, что в течение часа должно было быть 253 запросов, но в то время как Googling эта проблема, я столкнулся с кем-то, говоря, что это потому, что API был зарегистрирован в каждом запросе. К сожалению, я «унаследовал» этот код и до сих пор не работал с API-интерфейсом Instagram, кроме исправления ошибки на этом же сайте раньше.Превышено максимальное количество запросов Instagram в час (30)?
Клиентская сайт в WordPress, поэтому я завернул код, чтобы получить изображения в функции:
function get_instagram($user_id=USERID,$count=6,$width=190,$height=190){
$url = 'https://api.instagram.com/v1/users/'.$user_id.'/media/recent/?access_token=ACCESSTOKEN&count='.$count;
// Also Perhaps you should cache the results as the instagram API is slow
$cache = './'.sha1($url).'.json';
if(file_exists($cache) && filemtime($cache) > time() - 60*60){
// If a cache file exists, and it is newer than 1 hour, use it
$jsonData = json_decode(file_get_contents($cache));
} else {
$jsonData = json_decode((file_get_contents($url)));
file_put_contents($cache,json_encode($jsonData));
}
$result = '<a style="background-image:url(/wp-content/themes/iwear/inc/img/instagram-background.jpg);" target="_BLANK" href="http://www.instagr.am" class="lc-box lcbox-4 instagram">'.PHP_EOL.'<ul>'.PHP_EOL;
foreach ($jsonData->data as $key=>$value) {
$result .= "\t".'<li><img src="'.$value->images->low_resolution->url.'" alt="'.$value->caption->text.'" data-width="'.$width.'" data-height="'.$height.'" /><div class="lc-box-inner"><div class="title"><h2>images</h2></div><div class="description">'.$value->caption->text.'</div></div></li>'.PHP_EOL;
}
$result .= '</ul></a>'.PHP_EOL;
return $result;
}
Но, как я уже говорил, этот код перестал работать. Есть ли способ, которым я мог бы оптимизировать это, чтобы на самом деле работать? Я также заметил, есть упоминание о кэше в (вероятно, украденной) Instagram вещи, но это на самом деле не кэширование, так что также может быть решением
Благодаря
Вы пытались использовать кеширование результата в течение 1 часа на вашем сервере? возможно, используя memcache/memcached. Также вы используете любую инфраструктуру с встроенным кэшированием или используете ли вы Instagram api для кэширования? –
lol Я думал, что написал это, просто показывает, что вы можете копировать и вставлять, не изучая, что он делает. http://stackoverflow.com/questions/10231369/dealing-with-instagram-apis-json-php, OP результат должен быть кешем в течение 1 часа, если его не затем проверить права доступа к файлам и что '. ./'.sha1($ url). 'json'; 'можно записать. Также вы должны подумать о переходе на v2 API –
@LozCherone Действительно, это показывает это. Я против copypasting в целом, и, скорее, лучше обойти код, чтобы улучшить себя, но в ситуациях, когда я был отброшен в него предыдущим разработчиком, мне нравится быть как можно более непривлекательным с их решениями. Моя благодарность за консультацию – user2992596