// fill in your Constant Contact login and API key $ccuser = 'USERNAME_HERE'; $ccpass = 'PASS_HERE'; $cckey = 'APIKEY_HERE'; // fill in these values $firstName = ""; $lastName = ""; $emailAddr = ""; $zip = ""; // represents the contact list identification number(s) $contactListId = INTEGER_OR_ARRAY_OF_INTEGERS_HERE; $contactListId = (!is_array($contactListId)) ? array($contactListId) : $contactListId; $post = new SimpleXMLElement('<entry></entry>'); $post->addAttribute('xmlns', 'http://www.w3.org/2005/Atom'); $title = $post->addChild('title', ""); $title->addAttribute('type', 'text'); $post->addChild('updated', date('c')); $post->addChild('author', ""); $post->addChild('id', 'data:,none'); $summary = $post->addChild('summary', 'Contact'); $summary->addAttribute('type', 'text'); $content = $post->addChild('content'); $content->addAttribute('type', 'application/vnd.ctct+xml'); $contact = $content->addChild('Contact'); $contact->addAttribute('xmlns', 'http://ws.constantcontact.com/ns/1.0/'); $contact->addChild('EmailAddress', $emailAddr); $contact->addChild('FirstName', $firstName); $contact->addChild('LastName', $lastName); $contact->addChild('PostalCode', $zip); $contact->addChild('OptInSource', 'ACTION_BY_CUSTOMER'); $contactlists = $contact->addChild('ContactLists'); // loop through each of the defined contact lists foreach($contactListId AS $listId) { $contactlist = $contactlists->addChild('ContactList'); $contactlist->addAttribute('id', 'http://api.constantcontact.com/ws/customers/' . $ccuser . '/lists/' . $listId); } $posturl = "https://api.constantcontact.com/ws/customers/{$ccuser}/contacts"; $authstr = $cckey . '%' . $ccuser . ':' . $ccpass; $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, $posturl); curl_setopt($ch, CURLOPT_HTTPAUTH, CURLAUTH_BASIC); curl_setopt($ch, CURLOPT_USERPWD, $authstr); curl_setopt($ch, CURLOPT_POST, 1); curl_setopt($ch, CURLOPT_POSTFIELDS, $post->asXML()); curl_setopt($ch, CURLOPT_HTTPHEADER, array("Content-Type:application/atom+xml")); curl_setopt($ch, CURLOPT_HEADER, false); // Do not return headers curl_setopt($ch, CURLOPT_RETURNTRANSFER, 0); // If you set this to 0, it will take you to a page with the http response $response = curl_exec($ch); curl_close($ch); // returns true on success, false on error return (!is_numeric($response));
source share