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

how to solve curl error 60:ssl certificate problenm in youtube data api V3?

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

在这个 运行 serach.php 脚本之后它显示以下错误

Fatal error: Uncaught exception 'GuzzleHttp\Exception\RequestException' with message 'cURL error 60: SSL certificate problem: unable to get local issuer certificate (see http://curl.haxx.se/libcurl/c/libcurl-errors.html)' in C:\wamp\www\youtube feeds\vendor\guzzlehttp\guzzle\src\Handler\CurlFactory.php on line 187 ( ! ) GuzzleHttp\Exception\RequestException: cURL error 60: SSL certificate problem: unable to get local issuer certificate (see http://curl.haxx.se/libcurl/c/libcurl-errors.html) in C:\wamp\www\youtube feeds\vendor\guzzlehttp\guzzle\src\Handler\CurlFactory.php on line 187 .

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

如果刚开始,不要试图跳入深渊。
从事物的 "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 有助于简化大型程序和代码,但并非总是需要。

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

您可以手动下载这些文件,并在您的 php ini 中指定它们,但更好的选择是使用 "certainty" php 包来管理这些文件。我建议使用 composer,它很容易上手。