开发者

Constant Contact API, Adding a new contact

开发者 https://www.devze.com 2023-03-21 18:33 出处:网络
I am trying to add a new email subscriber as a contact to my contact list. But i am getting a 404 error. Following is my code. Can anybody help?

I am trying to add a new email subscriber as a contact to my contact list. But i am getting a 404 error. Following is my code. Can anybody help?

$userNamePassword = $Key . '%' . $UN . ':' . $PW ;

$entry = '<entry xmlns="http://www.w3.org/2005/Atom">
<id>http://api.constantcontact.com/ws/customers/'.$UN.'/contacts/'.$SubID.'</id>
        <title type="text">Contact: '.$email.'</title>
        <updated>2008-04-25T19:29:06.096Z</updated>
        <author><开发者_C百科;/author>
        <content type="application/vnd.ctct+xml">
        <Contact xmlns="http://ws.constantcontact.com/ns/1.0/"     id="http://api.constantcontact.com/ws/customers/'.$UN.'/contacts/'.$SubID.'">
        <EmailAddress>'.$email.'</EmailAddress>
        <OptInSource>ACTION_BY_CUSTOMER</OptInSource>
        <ContactLists>
        <ContactList id="http://api.constantcontact.com/ws/customers/'.$UN.'/lists/0">
        </ContactLists>
        </Contact>
        </content>
        </entry>';



       $tmpfile = tmpfile();
       fwrite($tmpfile, $entry);
       fseek($tmpfile, 0);

       // Initialize the curl session
       $request ="https://api.constantcontact.com/ws/customers/".$UN."/contacts/".$SubID;

       $session = curl_init($request);

       // Set up Digest authentication. Put your API key, and CTCT username/pwd here
       $userNamePassword = $Key . '%' . $UN . ':' . $PW ;

       curl_setopt($session, CURLOPT_HTTPAUTH, CURLAUTH_BASIC);
       curl_setopt($session, CURLOPT_USERPWD, $userNamePassword);
       curl_setopt($session, CURLOPT_INFILE, $tmpfile);
       fclose($tmpfile); // Close temp file because it no longer needed

       curl_setopt($session, CURLOPT_PUT, 1);
       curl_setopt($session, CURLOPT_INFILESIZE, strlen($entry));
       curl_setopt($session, CURLOPT_HTTPHEADER, Array("Content-Type:application/atom+xml"));
       curl_setopt($session, CURLOPT_HEADER, false);   // Do not return headers

       curl_setopt($session, CURLOPT_RETURNTRANSFER, 0);
       curl_setopt($session, CURLOPT_SSL_VERIFYPEER, 0);
       $response = curl_exec($session);
       $httpcode = curl_getinfo($session, CURLINFO_HTTP_CODE);
       curl_close($session);

         echo("httpcode error is ".$httpcode);
         if ($httpcode > 199 && $httpcode < 300){
             return 'Success';
         }else{
             return 'False';
        }


Ok, I am able to resolve the issue by making it post. i.e, replaced the following code

curl_setopt($session, CURLOPT_PUT, 1);

with the following codes

curl_setopt($session, CURLOPT_POST, 1);
curl_setopt($session, CURLOPT_POSTFIELDS, $entry);
0

精彩评论

暂无评论...
验证码 换一张
取 消