Всем привет. Сайт на вордпресс и у меня есть вот такой скрипт:
/*
* Функция для получения данных о последнем видео с YouTube-канала
*/
function get_latest_youtube_video() {
$api_key = '';
$channel_id = '';
$url = 'https://www.googleapis.com/youtube/v3/search?order=date&part=snippet&channelId=' . $channel_id . '&maxResults=1&type=video&videoDuration=long&key=' . $api_key;
$response = wp_remote_get($url);
if (is_wp_error($response)) {
return false;
}
$body = wp_remote_retrieve_body($response);
$data = json_decode($body);
if (isset($data->items[0])) {
$video_id = $data->items[0]->id->videoId;
return 'https://www.youtube.com/embed/' . $video_id;
}
return false;
}
/*
* Шорткод для вывода последнего видео на сайте
*/
function latest_youtube_video_shortcode() {
$latest_video_url = get_latest_youtube_video();
if ($latest_video_url) {
return '<iframe width="auto" height="auto" src="' . $latest_video_url . '" frameborder="0" allowfullscreen></iframe>';
} else {
return 'Latest video not found';
}
}
add_shortcode('latest_youtube_video', 'latest_youtube_video_shortcode');
/*
* Планирование проверки канала ежедневно в 12 часов дня
*/
if (!wp_next_scheduled('check_youtube_channel')) {
wp_schedule_event(strtotime('12:00:00'), 'daily', 'check_youtube_channel');
}
// Функция для проверки канала и обновления видео при необходимости
function check_youtube_channel() {
$latest_video_url = get_latest_youtube_video(); // Получаем последнее видео с YouTube-канала
$stored_video_url = get_option('latest_youtube_video_url'); // Получаем последнее сохраненное видео
// Если последнее сохраненное видео не совпадает с последним видео с канала, обновляем его
if ($latest_video_url && $latest_video_url !== $stored_video_url) {
update_option('latest_youtube_video_url', $latest_video_url);
}
}
add_action('check_youtube_channel', 'check_youtube_channel');
Ютуб блокирует ключ апи из-за превышения запросов с сайта. Подскажите, почему? В скрипте я обращаюсь по апи к ютубу один раз в 12 дня, но что ему не нравится?