已设置 API KEY,将我的域添加到允许的引荐来源,并尝试使用 PHP 调用 YouTube V3 API,如下所示:
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 禁止
我错过了什么明显的东西吗?
已设置 API KEY,将我的域添加到允许的引荐来源,并尝试使用 PHP 调用 YouTube V3 API,如下所示:
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 禁止
我错过了什么明显的东西吗?
发现可以生成多个不同的 API 密钥。默认是“浏览器 api 密钥”,但我需要在我的服务器上运行 PHP(当然)是一个“服务器 api 密钥”。
我设置了它,并将我的服务器的 IP 列入白名单。
问题解决了。
file_get_contents
您的网络服务器是否支持?由于安全风险,许多 Web 服务器不支持此功能。您是否考虑过使用 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);