如何解决curl错误60:youtube数据api V3中的ssl证书问题?

时间:2017-03-25 12:43:38

标签: php ssl curl guzzle youtube-data-api

我正在学习使用youtube data api v3(使用PHP)。所以我下载了示例api代码,以及我如何成功地在我的工作目录(版本1.4.x)中下载和安装composer。

这是我运行serach.php脚本,它显示以下错误

  

致命错误:未捕获的异常' GuzzleHttp \ Exception \ RequestException'消息' cURL错误60:SSL证书问题:无法获得本地颁发者证书(请参阅http://curl.haxx.se/libcurl/c/libcurl-errors.html)'在第187行的C:\ wamp \ www \ youtube feeds \ vendor \ guzzlehttp \ guzzle \ src \ Handler \ CurlFactory.php   (!)GuzzleHttp \ Exception \ RequestException:cURL错误60:SSL证书问题:无法在C:\ wamp \ www \ youtube feeds \ vendor \ guzzlehttp \ guzzle \ src \中获取本地颁发者证书(请参阅http://curl.haxx.se/libcurl/c/libcurl-errors.html)第187行的Handler \ CurlFactory.php。

我正在使用php 5.5.12和apache 2.4.9的wamp。我还从托盘和php.ini文件中启用了卷曲扩展。

2 个答案:

答案 0 :(得分:1)

如果刚刚开始,不要试图跳到深处 从“restfull”api方面开始。

举个例子,你可以这样做。

$url_link = 'https://www.googleapis.com/youtube/v3/videos?part=snippet&id=[VIDEO_ID]&key=[API_KEY]';

$video = file_get_contents($url_link);
$data= json_decode($video, true);

然后,您可以根据需要获取该通话中所需的信息。喜欢这个

$vid = $data['id'];

LIB适用于简化大型程序和代码,但并不总是需要。

答案 1 :(得分:0)

此问题是由于缺少“ cacert.pem”文件(或由运行php的主机操作系统提供的文件)引起的。该文件会验证证书颁发机构,以便curl可以安全地连接到youtube(并知道它是youtube,而不是中间攻击者的受害者)。

您可以手动下载这些文件,并在php ini中指定它们,但是更好的选择是使用“确定性” php软件包来管理这些文件。我建议使用作曲家,这很容易开始使用。