我有这段代码:
App::import('Vendor', 'mailchimp', array('file' => 'mailchimp/Mailchimp.php'));
$key = Configure::read("MAILCHIMP_KEY");
$list_id = 'xxxxxxxx';
$email=array('email' => $email_id);
$merge_vars = array(
'FNAME' => $fname,
'LNAME' => $lname,
'groupings' =>
array(
'name' => array('TestGroupTitle'),
'groups' => array('TestGroup')
)
);
$double_optin='false';
$mailchimp = new Mailchimp($key);
// sample to take help
// subscribe(string apikey, string id, struct email, struct merge_vars, string email_type, bool double_optin, bool update_existing, bool replace_interests, bool send_welcome)
$result = $mailchimp->lists->subscribe($list_id, $email, $merge_vars, 'html', $double_optin, false, true, false);
当我第一次添加我的电子邮件ID时,它正常工作但如果再次添加相同的电子邮件,则会显示此错误:xxxx@xx.com已订阅列出XXX简报。点击此处更新您的个人资料。
我没有回应任何事情,但这个消息仍在传播。
我也知道在调试后我得到了什么错误:
array(
'status' => 'error',
'code' => (int) 214,
'name' => 'List_AlreadySubscribed',
'error' => 'xxxx is already subscribed to list xxxx Newsletter. Click here to update your profile.'
)
我也试过这个,但什么都没发生。
if ($mailchimp->errorCode) {
$error['Code'] = $this->_mailChimp->errorCode;
$error['Message'] = $this->_mailChimp->errorMessage;
pr($error);
pr($error['Code']);
}
我正在使用PHP和Mailchimp api 2.0。任何帮助将受到高度赞赏。我浪费了这一整天的时间。 :(
答案 0 :(得分:3)
我同意希沙姆一样,对于像我这样的菜鸟,谷歌多次用Google搜索,但在看到希沙姆自己的答案暗示我之前,仍然无法找到真正有用的解决方案。这是一个更详细的例子,以防将来有人需要它
// Your Mailchimp API Key
$apikey = 'xxxxxxxxxxxxxx';
// List ID
$list_id = 'xxxxxxxxxx';
// Initializing the $MailChimp object
$mc = new Mailchimp($apikey);
try {
//MAILCHIMP API call subscribe() ---- email only
$mc->lists->subscribe($list_id, array(
"email" => $email
));
} catch (Exception $e) {
echo 'Caught exception: ', $e->getMessage(), "\n";
}
答案 1 :(得分:2)
找到答案,并希望与面临同样问题的人分享。 在之前的Mailchimp版本中,它很容易处理,但是从2.0开始,你需要使用try catch块。
答案 2 :(得分:1)
您是否尝试过使用:
' update_existing' =>真
在您的参数中?