如何解决 youtube data api V3 中的 curl 错误 60:ssl 证书问题?
Posted
技术标签:
【中文标题】如何解决 youtube data api V3 中的 curl 错误 60:ssl 证书问题?【英文标题】:how to solve curl error 60:ssl certificate problenm in youtube data api V3? 【发布时间】:2017-08-18 09:27:05 【问题描述】:我正在学习使用 youtube data api v3(使用 php)。所以我下载了示例 api 代码以及一些我如何成功地在我的工作目录(版本 1.4.x)中下载和安装作曲家。
在此之后我运行 serach.php 脚本,它显示以下错误
致命错误:未捕获的异常“GuzzleHttp\Exception\RequestException”与消息“cURL 错误 60:SSL 证书问题:无法在 C:\wamp\www\youtube feeds\ 中获取本地颁发者证书(请参阅http://curl.haxx.se/libcurl/c/libcurl-errors.html)” vendor\guzzlehttp\guzzle\src\Handler\CurlFactory.php 在第 187 行 ( ! ) GuzzleHttp\Exception\RequestException: cURL 错误 60: SSL 证书问题:无法在 C:\wamp\www\youtube feeds\vendor\guzzlehttp\guzzle\src\Handler\ 中获取本地颁发者证书(请参阅http://curl.haxx.se/libcurl/c/libcurl-errors.html)第 187 行的 CurlFactory.php 。
我在 php 5.5.12 和 apache 2.4.9 中使用 wamp。我还从托盘和 php.ini 文件中启用了 curl 扩展。
【问题讨论】:
【参考方案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 有利于简化大型程序和代码,但并不总是需要。
【讨论】:
【参考方案2】:问题是由于缺少“cacert.pem”文件(或由运行 php 的主机操作系统提供)造成的。此文件验证证书颁发机构,以便 curl 可以安全地连接到 youtube(并且知道它是 youtube,而不是中间人攻击的受害者)。
您可以手动下载这些文件,并在您的 php ini 中指定它们,但更好的选择是使用“确定性”php 包来管理这些文件。我建议使用作曲家,它很容易开始使用。
【讨论】:
以上是关于如何解决 youtube data api V3 中的 curl 错误 60:ssl 证书问题?的主要内容,如果未能解决你的问题,请参考以下文章
用于任意页面的 Youtube Data API v3 pageToken
YouTube 频道中的“已发布视频”和“上传”有啥区别?以及如何通过 YouTube Data v3 API 获取它们?
如何使用新的 YouTube Data API (V3) 获取某个频道的上传视频列表?
如何使用新的 YouTube Data API (V3) 获取某个频道的上传视频列表?