Question

Je suis en train d'écrire une classe qui peut ajouter un signet à mon compte Delicious.
Voici ma méthode:

public function addBookmark($url, $description) {   
    $dusername = 'myUsername';  
    $dpassword = 'myPassword';  
    $api = 'api.del.icio.us/v1';  
    $link = urlencode($url);  
    $desc = urlencode($description);  
    $apicall = "https://$dusername:$dpassword@$api/posts/add?&url=$link&description=$desc";  
    $ch = curl_init($apicall);  
    curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 2);  
    curl_setopt($ch, CURLOPT_USERAGENT, 'php - curl');  
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);  
    $xml = curl_exec($ch);   
} 

Dans le code réel, dusername de $ et dpassword $ sont mes lettres de créance réels.

Lorsqu'il est appelé à partir de PHP, il ne parvient pas à ajouter un signet. Toutefois, si j'echo $ apicall, et je vais directement avec FireFox, le signet est ajouté. Donc, cela me fait supposer qu'il ya une erreur dans ma mise en œuvre cURL. J'ai essayé de commenter les lignes où il définit CURLOPT_SSL_VERIFYHOST et CURLOPT_USERAGENT, mais cela ne fonctionne pas non plus.

Ce me rend fou parce que d'abord je roulais mon propre code, ce qui ne fonctionnait pas. Maintenant, je suis en utilisant quelqu'un de code a (soi-disant) obtenu à travailler pour eux, et toujours pas de chance.

Toute aide est grandement appréciée, merci!

Était-ce utile?

La solution

Il semble que vous avez un problème de vérification du certificat de l'autorité de certification. Je ne sais pas comment vous corriger cela, mais vous pourriez être en mesure de contourner comme ceci:

curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top