2009-09-22 30 views
4

我想使用常量聯繫人的API,並且希望在用戶註冊到站點時使用PHP插入用戶電子郵件。如何使用常量聯繫API?

請回復,如果有任何幫助。

在此先感謝。

+0

請澄清你的問題。我沒有得到你想要做的事情;) – 2009-09-23 07:03:38

+0

Constant Contact爲時事通訊管理提供服務。 我想在註冊該網站時將用戶添加到常用聯繫人數據庫中。 意味着他們在註冊網站時會自動添加到新聞組。 感謝您對我的問題感興趣。 – Avinash 2009-09-29 06:39:37

回答

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

不適合我,總是返回false – GusDeCooL 2011-07-26 22:32:31

1

如果你不能得到這個工作,你可能需要添加此curl_setopt:

curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE); 
2

ConstantContact的開發商紛紛推出PHP庫來處理這類任務。

以下版本適用於較舊的PHP版本(5.2或更低版本)。從此處下載代碼:https://github.com/constantcontact/ctct_php_library

以下是在訂閱者常用聯繫人列表中添加訂閱者電子郵件的示例。

下載上述庫後,使用以下代碼在常量聯繫人列表中添加電子郵件。

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."; 
} 

注:最新版本可以在以下網址給出GitHub的鏈接中找到:http://developer.constantcontact.com/libraries/sample-code.html 但我不知道,如果上面的示例代碼,是用新庫與否。