2009-09-22 7 views
4

Je veux utiliser l'API du contact constant et je veux insérer l'email de l'utilisateur en utilisant PHP lors de l'inscription de l'utilisateur sur le site.Comment utiliser l'API Constant Contact?

s'il vous plaît répondre si l'aide.

Merci d'avance.

+0

Veuillez clarifier votre question. Je n'ai pas compris ce que vous voulez faire;) –

+0

Constant Contact fournit un service pour la gestion de la newsletter. Je souhaite ajouter l'utilisateur à la base de données de contacts permanents lors de son inscription sur le site. Signifie qu'ils s'ajouteront automatiquement au groupe de newsletter lorsqu'ils s'inscrivent sur le site. Merci de votre intérêt pour ma question. – Avinash

Répondre

10
// 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)); 
+0

Ne fonctionne pas pour moi, retourne toujours false – GusDeCooL

1

Si vous ne pouvez pas obtenir ce travail, vous pourriez avoir à ajouter cette curl_setopt:

curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE); 
2

Les développeurs de ConstantContact ont lancé bibliothèque PHP pour gérer ce genre de tâches.

La version suivante est pour les anciennes versions de PHP (5.2 ou moins). Télécharger le code d'ici: https://github.com/constantcontact/ctct_php_library

Voici un exemple pour ajouter un e-mail d'abonné dans vos listes de contacts constants. Après avoir téléchargé la bibliothèque ci-dessus, utilisez le code suivant pour ajouter un e-mail dans la ou les liste (s) de contacts permanents.

session_start(); 
include_once('ConstantContact.php'); // Set path accordingly 
$username = 'YOUR_CONSTANT_CONTACT_USER_NAME'; 
$apiKey = 'YOUR_API_KEY'; 
$password = 'YOUR_CONSTANT_CONTACT_PASSWORD'; 

$ConstantContact = new Constantcontact("basic", $apiKey, $username, $password); 

$emailAddress = "[email protected]"; 

// Search for our new Email address 
$search = $ConstantContact->searchContactsByEmail($emailAddress); 

// If the search did not return a contact object 
if($search == false){ 

    $Contact = new Contact(); 
    $Contact->emailAddress = $emailAddress; 
    //$Contact->firstName = $firstName; 
    //$Contact->lastName = $lastName; 
    // represents the contact list identification link(s) 
    $contactList = LINK_OR_ARRAY_OF_LINKS_HERE; 
    // For example, 
    // "http://api.constantcontact.com/ws/customers/USER_NAME/lists/14"; 
    $Contact->lists = (!is_array($contactList)) ? array($contactList) : $contactList; 


    $NewContact = $ConstantContact->addContact($Contact); 
    if($NewContact){ 
     echo "Contact Added. This is your newly created contact's information<br /><pre>"; 
     print_r($NewContact); 
     echo "</pre>"; 

    } 
} else { 
    echo "Contact already exist."; 
} 

Note: La dernière version se trouve sur les liens GitHub données dans l'URL suivante: http://developer.constantcontact.com/libraries/sample-code.html Mais je ne suis pas sûr si le code exemple ci-dessus fonctionne avec la nouvelle bibliothèque ou non.