We need 3 items to integrate Constant Contact on our Website.
1. Username
2. Password
3. API Key
Like most other APIs and third party integration, it needs API KEY to utilize integration.
API Key can be generated from below URL.
http://community.constantcontact.com/t5/Documentation/API-Keys/ba-p/25015
Or alternatively, if this doesn’t work. You can try finding Developer Docs & look for the link to generate API Key.
<?php // fill in your Constant Contact login and API key $ccuser = 'username'; $ccpass = 'password'; $cckey = 'API KEY HERE'; // fill in these values $emailAddr = $_POST['email']; // represents the contact list identification number(s) $contactListId = 1; $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('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)); ?>
Recent Comments