del.icio.us PHP API

This is a PHP class that provides (partially) complete access to the del.icio.us social bookmarking service. My del.icio.us.

DOWNLOAD

EXAMPLE USAGE

require_once('class.delicious.php'); // define some error messages $errors = array( 1=>'You must enter credentials', 2=>'You have been throttled. Please stop attempting to connect to del.icio.us', 3=>'The del.icio.us service did not return a proper HTTP response', 4=>'Unable to connect to del.icio.us', 5=>'Unable to send data to del.icio.us', 6=>'Unable to parse the XML returned from del.icio.us' ); // instanciate delicious object $del = new delicious('youraccount','yourpassword'); // toggle debugging mode //$del->debug_flag = 1; // Example #1: get all posts to date, to initially import existing delicious entries into your blog // PLEASE USE SPARINGLY OR del.icio.us WILL THROTTLE YOU if(!$result = $del->get_all_posts()) { $message = $errors[ $del->getError() ]; } else { // debugging helpers //echo $del->htmlvar_dump($result); //echo $del->request; //echo $del->response; if( count($result) > 0) { // loop thru result set, inserting into db foreach($result as $properties) { echo implode(', ',$properties)."\r\n\r\n"; // map delicious fields onto blog fields $blogfields = array(); $blogfields['title'] = $properties['description']; $blogfields['date'] = date('Y-m-d H:m:s',strtotime(ereg_replace('T|Z',' ',$properties['time']))); $blogfields['link'] = $properties['href']; $blogfields['content'] = $properties['extended']; $blogfields['category'] = str_replace(' ',',',$properties['tag']); $yourBlogObject->addPost($blogfields); } } else { $message = $result['code']; } } /* Example #2: integrate posts for today I have a cron job that executes this script once a day, importing my feed into my blog. 01 23 * * * /usr/local/bin/php -q /home/mydir/import_delicious.php */ $date = date('Y-m-d\TH:i:s\Z'); // get posts for today if(!$result = $del->get_posts( false, $date )) { $message = $errors[ $del->getError() ]; } else { if( count($result) > 0) { // loop thru result set, inserting into db foreach($result as $properties) { echo implode(', ',$properties)."\r\n\r\n"; // map delicious fields onto blog fields $blogfields = array(); $blogfields['title'] = $properties['description']; $blogfields['date'] = date('Y-m-d H:m:s',strtotime(ereg_replace('T|Z',' ',$properties['time']))); $blogfields['link'] = $properties['href']; $blogfields['content'] = $properties['extended']; $blogfields['category'] = str_replace(' ',',',$properties['tag']); $yourBlogObject->update($blogfields); } } else { $message = $result['code']; } } // Example #3: integrating a range of dates if(!$dates = $del->get_post_dates()) { $message = $errors[ $del->getError() ]; } else { foreach($dates as $row) { if($row['date'] < '2004-10-06' && $row['date'] > '2004-09-06') { // for integrating specific dates (the outermost loop that is commented out) $date = date('Y-m-d\TH:i:s\Z',strtotime($row['date'])); if(!$result = $del->get_posts( false, $date )) { $message = $errors[ $del->getError() ]; } else { if( count($result) > 0) { // loop thru result set, inserting into db foreach($result as $properties) { echo implode(', ',$properties)."\r\n\r\n"; // map delicious fields onto blog fields $blogfields = array(); $blogfields['title'] = $properties['description']; $blogfields['date'] = date('Y-m-d H:m:s',strtotime(ereg_replace('T|Z',' ',$properties['time']))); $blogfields['link'] = $properties['href']; $blogfields['content'] = $properties['extended']; $blogfields['category'] = str_replace(' ',',',$properties['tag']); $yourBlogObject->update($blogfields); } } else { $message = $result['code']; } } } } } // send notification of import $message = isset($message) ? $message : 'update successful'; $message .= "\r\n\r\n".ob_get_contents(); ob_end_clean(); mail('youremail@example.com','delicious update', $message);