2017-10-12 2 views
0

J'essaye d'authentifier un utilisateur via Tumblr PHP API.Erreur irrécupérable erreur cURL 60 lors de l'utilisation de Tumblr PHP API

Je reçois cette erreur

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)'

Lors de la visite du site proposé c'est l'explication de l'erreur 60

CURLE_SSL_CACERT (60)

Peer certificate cannot be authenticated with known CA certificates.

J'ai trouvé un problème similaire here, mais comment puis-je résoudre le mien ? Est-ce la même?

C'est le code que je suis en train d'utiliser

require_once('vendor/autoload.php'); 
$consumerKey = 'XXX'; 
$consumerSecret = 'YYY'; 
$client = new Tumblr\API\Client($consumerKey, $consumerSecret); 
$requestHandler = $client->getRequestHandler(); 
$requestHandler->setBaseUrl('https://www.tumblr.com/'); 

// If we are visiting the first time 
if (!$_GET['oauth_verifier']) { 

    // grab the oauth token 
    $resp = $requestHandler->request('POST', 'oauth/request_token', array()); 
    $out = $result = $resp->body; 
    $data = array(); 
    parse_str($out, $data); 

    // tell the user where to go 
    echo '<a href="https://www.tumblr.com/oauth/authorize?oauth_token=' . $data['oauth_token'].'"> GO </a>'; 
    $_SESSION['t']=$data['oauth_token']; 
    $_SESSION['s']=$data['oauth_token_secret']; 

} else { 

    $verifier = $_GET['oauth_verifier']; 

    // use the stored tokens 
    $client->setToken($_SESSION['t'], $_SESSION['s']); 

    // to grab the access tokens 
    $resp = $requestHandler->request('POST', 'oauth/access_token', array('oauth_verifier' => $verifier)); 
    $out = $result = $resp->body; 
    $data = array(); 
    parse_str($out, $data); 

    // and print out our new keys we got back 
    $token = $data['oauth_token']; 
    $secret = $data['oauth_token_secret']; 
    echo "token: " . $token . "<br/>secret: " . $secret; 

    // and prove we're in the money 
    $client = new Tumblr\API\Client($consumerKey, $consumerSecret, $token, $secret); 
    $info = $client->getUserInfo(); 
    echo "<br/><br/>congrats " . $info->user->name . "!"; 

} 

Répondre

0

Ceci est un doublon. La réponse se trouve here

Ceci est la solution

  1. télécharger et extraire pour cacert.pem ici (un format de fichier propre/données)

    https://gist.github.com/VersatilityWerks/5719158/download

    1. mettre dans:

      C:\xampp\php\extras\ssl\cacert.pem

    2. Ajouter cette ligne à votre php.ini

      curl.cainfo = "C:\xampp\php\extras\ssl\cacert.pem"

    3. redémarrage du serveur Web/apache