Since accessing del.icio.us API services require Authentication ,i
tried writing a PHP script which uses curl.The script does a login to
del.icio.us(https://secure.del.icio.us/login) and then stores the
authentication cookie in a file and then use the same cookie data to
access the service (https://api.del.icio.us/v1/posts/update)

But unfortunately i get a HTTP 401 - Not Authorised Error even though
am passing the cookie.

I have also pasted the PHP code .Kindly let me know where am going wrong.


<?php
define("OK", 0);

 function do_curl($method, $url, $fields)
        {
                $retval = array('error_code' => 0, 'error_string' =>
'OK');
                $cookiejar = "/tmp/cookiejar";

                $ch = curl_init();

                if($method == "POST")
                {
                        curl_setopt($ch, CURLOPT_POST, TRUE);
                        curl_setopt($ch, CURLOPT_POSTFIELDS, $fields);
                }

                curl_setopt($ch, CURLOPT_URL, $url );
                curl_setopt($ch, CURLOPT_COOKIEJAR, $cookiejar);
                curl_setopt($ch, CURLOPT_COOKIEFILE, $cookiejar);
                curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE);

                $result = curl_exec($ch);

                $http_code = curl_getinfo($ch, CURLINFO_HTTP_CODE);

                $retval['result'] = $result;
                $retval['http_code'] = $http_code;

                curl_close($ch);

                return $retval;
        }



        function getupdate()
        {
                $url = "https://api.del.icio.us/v1/posts/update";;
                $result = do_curl("GET", $url, array());

                if($result['error_code'] != OK)
                        return $result;


                if($result['http_code'] != 200)
                {
                        $retval = array();
                        $retval['error_code'] = "Error";
                        $retval['error_string'] = "HTTP Code : " .
$result['http_code'];
                        return $retval;
                }

                return $result;
        }



         $fields['user_name'] = "dummy007";
         $fields['password'] = "gopal123";
         $url = "https://secure.del.icio.us/login";;;
         $retval = do_curl("POST", $url, $fields);

         print_r($retval);
         print_r(getupdate());
?>

Thanks,
Gopal

Reply via email to