【问题标题】:how to solve curl error 60:ssl certificate problenm in youtube data api V3?如何解决 youtube data api V3 中的 curl 错误 60:ssl 证书问题?
【发布时间】: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 扩展。

【问题讨论】:

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


    【解决方案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 包来管理这些文件。我建议使用作曲家,它很容易开始使用。

      【讨论】:

        猜你喜欢
        • 2017-09-14
        • 2020-09-14
        • 1970-01-01
        • 2020-09-18
        • 2021-06-02
        • 2016-12-07
        • 2014-02-06
        • 2019-10-27
        • 2017-11-21
        相关资源
        最近更新 更多