检查一批电子邮件地址以及他们是否订阅特定列表的最佳方法是什么?我当前的方法是为每个电子邮件地址进行API调用,但是当计数变为>时,这变得非常慢。 50。
我正在使用V2.0,使用PHP方法,因为我正在开发CakePHP。
//Determine MailChimp Subscription
$args = array(
'id' => $this->apiKeys['mailchimp_list_ID'],
'emails' => array(1 => array('email' => $customer['User']['username']))
);
$mailChimpQuery = $this->mailChimp('member-info', $args);
$mailChimpStatus = ($mailChimpQuery['success_count'] == 1 ? 1 : 0);
$customer['Customer']['subscribed'] = $mailChimpStatus;
另一个Controller中的mailChimp
调用是:
public function mailChimp($action, $args=array()) {
$args['apikey'] = $this->apiKeys['mailchimp_api'];
$url = 'https://us8.api.mailchimp.com/2.0/lists/' . $action .'.json';
if (function_exists('curl_init') && function_exists('curl_setopt')){
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_HTTPHEADER, array('Content-Type: application/json'));
curl_setopt($ch, CURLOPT_USERAGENT, 'PHP-MCAPI/2.0');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_TIMEOUT, 10);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($args));
$result = curl_exec($ch);
curl_close($ch);
} else {
$json_data = json_encode($args);
$result = file_get_contents($url, null, stream_context_create(array(
'http' => array(
'protocol_version' => 1.1,
'user_agent' => 'PHP-MCAPI/2.0',
'method' => 'POST',
'header' => "Content-type: application/json\r\n".
"Connection: close\r\n" .
"Content-length: " . strlen($json_data) . "\r\n",
'content' => $json_data,
),
)));
}
return $result ? json_decode($result, true) : false;
}
答案 0 :(得分:0)
仅供参考,我提出了自己的解决方案: