Revision: 5409
Initial Code
Initial URL
Initial Description
Initial Title
Initial Tags
Initial Language
at March 6, 2008 15:51 by dannymo2
Initial Code
<?php /* * Helper class for the Rapleaf Address Book API * (http://www.rapleaf.com/apidoc/v2/abook) * Gets the XML response from the Rapleaf server and parses it into a PHP object. * * Usage: * 1. $abook = new RapleafAbook(api_key[,url]) to initialize * 2. $result = $abook->getData(email, password) to query the API for a contact list * See the function definitions for details. * * 03/01/2008 * */ class RapleafAbook { var $url; var $api_key; var $status; function RapleafAbook($api_key, $url = 'http://api.rapleaf.com/v2/abook') { $this->api_key = $api_key; $this->url = $url; $this->status = ''; } function getData($email, $pass) { # assemble post_data string $post_data = "login=$email&password=$pass"; $response = $this->sendPostRequest($this->url, $post_data); # the return structure $result = array( 'status' => '', # HTTP status code returned by the server 'error' => '', # error message if there are any 'contacts' => array(), # contact list if request succeeded ); $result['status'] = $this->status; if ($this->status == '200') { #OK $result['contacts'] = $this->xmlToObj($response); } elseif ($this->status == '400') { $result['error'] = 'The request did not contain all required parameters: '.$response; } elseif ($this->status == '401') { $result['error'] = 'API key was not provided or is invalid.'; } elseif ($this->status == '420') { $result['error'] = 'Login failed.'; } elseif ($this->status == '500') { $result['error'] = 'There was an unexpected error on our server. This should be very rare and if you see it please contact [email protected].'; } elseif ($this->status == '520') { $result['error'] = 'There was an error while reading the contacts from the address book.'; } return $result; } # Parse the xml response text into an associative array function xmlToObj($str) { $xml = simplexml_load_string($str); $result = array(); foreach ($xml->contact as $contact) { $result[] = array('name' => (string) $contact['name'], 'email' => (string) $contact['email']); } return $result; } # Returns the xml response on success, sets the error message on failure function sendPostRequest($url, $post_data) { $ch = curl_init(); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); curl_setopt($ch, CURLOPT_TIMEOUT, 20); curl_setopt($ch, CURLOPT_URL, $url); curl_setopt($ch, CURLOPT_POST, 1); curl_setopt($ch, CURLOPT_POSTFIELDS, $post_data); curl_setopt($ch, CURLOPT_HTTPHEADER, array("Authorization: ".$this->api_key, "Content-Type: application/x-www-form-urlencoded") ); $data = curl_exec($ch); $this->status = curl_getinfo($ch, CURLINFO_HTTP_CODE); curl_close($ch); return $data; } } ?>
Initial URL
http://www.rapleaf.com/developer
Initial Description
Use this API to access names and addresses in a user's webmail (Gmail, AOL, Hotmail, and Yahoo). Make it easy to send friend invites for a social site and import contact lists. Rapleaf maintains up to date code on the importer and never stores passwords.
Initial Title
Rapleaf Address Book API
Initial Tags
list, api
Initial Language
PHP