Я пытаюсь добавить нового подписчика электронной почты в качестве контакта в свой список контактов.Но я получаю ошибку 404.Ниже мой код.Кто-нибудь может помочь?
$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></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'; }
Хорошо, я могу решить проблему, отправив сообщение.т.е. заменили следующий код
curl_setopt($session, CURLOPT_PUT, 1);
на следующие коды
curl_setopt($session, CURLOPT_POST, 1); curl_setopt($session, CURLOPT_POSTFIELDS, $entry);