Создали API-ключ, добавили мой домен в список допустимых рефереров и попытались обратиться к API V3 YouTube с помощью PHP следующим образом:
file_get_contents("https://www.googleapis.com/youtube/v3/search?part=snippet&q=my_search_query&type=video&key=my_application_key")
Но
не удалось открыть поток: HTTP-запрос не удался! HTTP / 1.0 403 Запрещено
Я пропустил что-то очевидное?
Transpires существует несколько различных ключей API, которые можно создать. По умолчанию используется «браузер api key», но тот, который мне нужен для PHP, работающего на моем сервере (конечно), был «сервером api key».
Я установил это и включил IP-адрес моего сервера.
Задача решена.
поддерживает file_get_contents
на вашем веб-сервере? многие веб-серверы не поддерживают эту функцию из-за рисков безопасности. вы изучали использование curl вместо этого?
может быть, что-то вроде этого:
$option = array( 'part' => 'snippet', 'q' => 'search_query', 'type' => 'video', 'key' => 'your_key' ); $url = "https://www.googleapis.com/youtube/v3/search?".http_build_query($option, 'a', '&'); $curl = curl_init($url); curl_setopt($curl, CURLOPT_HTTPAUTH, CURLAUTH_ANY); curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, true); curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1); curl_setopt($curl, CURLOPT_HTTPHEADER, false); $json_response = curl_exec($curl); curl_close($curl); $responseObj = json_decode($json_response);