YouTube Data API无法打开流:HTTP请求失败! HTTP / 1.0 403禁止

时间:2013-09-03 13:17:45

标签: php youtube youtube-api

设置了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禁止

我错过了一些明显的东西吗?

2 个答案:

答案 0 :(得分:2)

透明,可以生成多个不同的API密钥。默认为浏览器api密钥'但我在服务器上运行PHP所需的那个(当然)是一个服务器api密钥'。

我设置了它,并将我服务器的IP列入白名单。

问题解决了。

答案 1 :(得分:0)

您的网络服务器是否支持

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);