2009-09-21 81 views
0

我正在尝试编写一个可以将书签添加到我的Delicious帐户的类。
这里是我的方法:需要帮助使用cURL为Delicious添加书签

public function addBookmark($url, $description) { 
    $dusername = 'myUsername'; 
    $dpassword = 'myPassword'; 
    $api = 'api.del.icio.us/v1'; 
    $link = urlencode($url); 
    $desc = urlencode($description); 
    $apicall = "https://$dusername:[email protected]$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); 
} 

在实际的代码,$ dusername和$ dpassword是我的实际凭据。

从PHP调用时,无法添加书签。但是,如果我回显$ apicall,并直接使用FireFox进行操作,则会添加书签。所以,这让我认为我的cURL实现中有一个错误。我试着将其设置为CURLOPT_SSL_VERIFYHOSTCURLOPT_USERAGENT的行注释掉,但那也行不通。

这让我疯狂,因为起初我推出了我自己的代码,但这并没有奏效。现在我使用的代码有人(据称)为自己工作,仍然没有运气。

任何帮助非常感谢,谢谢!

+0

你是否收到一个特定的错误信息? – inkedmn 2009-09-21 20:39:21

+0

不幸的是,没有。我希望我是。我正在使用curl_getinfo(),但它没有吐出任何错误消息。 Delicious API应该返回一个XML响应,但我没有收到任何响应。 – 2009-09-21 20:41:18

+0

尝试echo curl_error($ ch); – Greg 2009-09-21 20:42:39

回答

2

看来您在验证证书颁发机构的证书时遇到问题。不知道你如何解决这个问题,但你也许可以这样回避:

curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false); 
+0

这有窍门。谢谢! – 2009-09-21 20:51:34