Bonjour,

Je rencontre une erreur lorsque je suis le tuto Youtube API v3.
Je souhaite récupérer les vidéos d'une playlist en particulier.
Pour l'instant je suis juste le tuto en faisant une recherche sur un mot clé.

Mon code :

public function videosAction(){
        require_once 'vendor/autoload.php';

        $client = new Google_Client();
        $client->setDeveloperKey( MY_KEY' );

        $youtube = new Google_Service_Youtube( $client );
        $list = $youtube->search->listSearch('id, snippet', ['q' => 'onecoin', 'order' => 'date', 'type' => 'video']);

        var_dump( $list );

}        

L'erreur que j'obtiens :

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 D:\Google Drive\WebDev2015\3 - PHP\OPT\pannel\vendor\guzzlehttp\guzzle\src\Handler\CurlFactory.php:187 Stack trace: #0 D:\Google Drive\WebDev2015\3 - PHP\OPT\pannel\vendor\guzzlehttp\guzzle\src\Handler\CurlFactory.php(150): GuzzleHttp\Handler\CurlFactory::createRejection(Object(GuzzleHttp\Handler\EasyHandle), Array) #1 D:\Google Drive\WebDev2015\3 - PHP\OPT\pannel\vendor\guzzlehttp\guzzle\src\Handler\CurlFactory.php(103): GuzzleHttp\Handler\CurlFactory::finishError(Object(GuzzleHttp\Handler\CurlHandler), Object(GuzzleHttp\Handler\EasyHandle), Object(GuzzleHttp\Handler\CurlFactory)) #2 D:\Google Drive\WebDev2015\3 - PHP\OPT\pannel\vendor\guzzlehttp\guzzle\src\Handler\CurlHandler.php(43): GuzzleHttp\Handler\CurlFactory::finish(Object(GuzzleHttp\Handler\CurlHandler), Object(GuzzleHttp\Handler\EasyHandle) in D:\Google Drive\WebDev2015\3 - PHP\OPT\pannel\vendor\guzzlehttp\guzzle\src\Handler\CurlFactory.php on line 187

Je suis en localhost, et à priori Guzzle a une problème avec la vérification SSL.
Mais je n'arrive pas à trouver comment le désactiver.
J'ai importé les librairies avec composer comme dans le tuto.

Merci de m'aider si vous avez une idée.

Autrement je pensais ne pas utiliser de l'API et me servir de CURL pour récupérer le json de toute la playlist concernée.

2 réponses


RiderFx3
Auteur
Réponse acceptée

Bon beh je continue à me débugger tout seul :D
J'espère que ça servira à d'autres. Donc mon problème vient du fait des restrictions appliquées sur la clé d'API.

En attendant de faire mes test, j'ai enlevé toutes les restrictions, puis je mettrai des instructions par nom de domaine par la suite.

Bon courage ;)

RiderFx3
Auteur

J'ai pu régler ce premier soucis avec ces deux lignes :

$guzzleClient = new \GuzzleHttp\Client(array( 'curl' => array( CURLOPT_SSL_VERIFYPEER => false, ), ));
$client->setHttpClient($guzzleClient);

Maintenant, j'ai une autre erreur :

Fatal error: Uncaught exception 'Google_Service_Exception' with message '{ "error": { "errors": [ { "domain": "usageLimits", "reason": "ipRefererBlocked", "message": "The request did not specify any referer. Please ensure that the client is sending referer or use the API Console to remove the referer restrictions.", "extendedHelp": "https://console.developers.google.com/apis/credentials?project=540618300717" } ], "code": 403, "message": "The request did not specify any referer. Please ensure that the client is sending referer or use the API Console to remove the referer restrictions." } } ' in D:\Google Drive\WebDev2015\3 - PHP\OPT\pannel\vendor\google\apiclient\src\Google\Http\REST.php:118 Stack trace: #0 D:\Google Drive\WebDev2015\3 - PHP\OPT\pannel\vendor\google\apiclient\src\Google\Http\REST.php(94): Google_Http_REST::decodeHttpResponse(Object(GuzzleHttp\Psr7\Response), Object(GuzzleHttp\Psr7\Request), 'Google_Service_...') #1 [internal function]: Google_Http_REST::doExecute(Object(Guzz in D:\Google Drive\WebDev2015\3 - PHP\OPT\pannel\vendor\google\apiclient\src\Google\Http\REST.php on line 118

"The request did not specify any referer. Please ensure that the client is sending referer or use the API Console to remove the referer restrictions."

L'erreur vient du fichier REST.php

Merci à ceux qui me liront ;)