2009-09-21 2 views
0

Я пытаюсь написать класс, который может добавить закладку в мою учетную запись Delicious.
Вот мой метод:Нужна помощь по добавлению закладки в Delicious с помощью cURL

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_VERIFYHOST и CURLOPT_USERAGENT, но это тоже не сработало.

Это сводит меня с ума, потому что сначала я закатил свой собственный код, который не работал. Теперь я использую код, который кто-то (предположительно) работал на себя, и все равно не повезло.

Любая помощь с благодарностью, спасибо!

+0

У вас возникло определенное сообщение об ошибке? – inkedmn

+0

К сожалению, нет. Я хотел бы. Я использовал curl_getinfo(), но он не выплевывал никаких сообщений об ошибках. Предполагается, что Delicious API возвращает ответ XML, но я не получал его. –

+0

попробуйте echo curl_error ($ ch); – Greg

ответ

2

У вас возникли проблемы с проверкой сертификата Certificate Authority. Не знаете, как вы это исправите, но вы можете обойти это следующим образом:

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

Это сделало трюк. Благодаря! –

Смежные вопросы