MailChimp API:批处理检查订阅状态

历险记3

检查一批电子邮件地址以及是否已订阅特定列表的最佳方法是什么?我当前的方法是为每个电子邮件地址进行API调用,但是当计数大于50时,这将变得非常慢。

由于我在CakePHP上进行开发,因此我正在使用V2.0和PHP方法。

 //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;

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;
    }
历险记3

仅供参考,我想出了自己的解决方案:

  1. 创建数据库中所有电子邮件地址的数组
  2. 创建一个for循环,该循环从该数组中获取50个电子邮件地址的分段,并使用member-infohttps://apidocs.mailchimp.com/api/2.0/lists/member-info.php运行批处理检查
  3. 操作API调用中的return数组,以仅提取电子邮件地址以及是否已订阅列表。
  4. 在for循环中,将每50个电子邮件地址的返回值添加到一个新数组中,然后在其末尾添加;您将在数据库中拥有一个数组,其中包含所有电子邮件地址,并具有相应的true / false值,具体取决于它们是否已订阅列表。

祝你好运!

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

Javascript + MailChimp API订阅

来自分类Dev

MailChimp API 3.0订阅

来自分类Dev

MailChimp API 3.0批处理更新-始终处于待处理状态,total_operations:0

来自分类Dev

Mailchimp API v3:批量订阅始终处于待处理状态

来自分类Dev

Mailchimp API v3:批量订阅始终处于待处理状态

来自分类Dev

MailChimp取消订阅PHP

来自分类Dev

MailChimp API v2.0订阅

来自分类Dev

MailChimp API成员信息问题

来自分类Dev

Mailchimp API v2

来自分类Dev

MailChimp API Webhook 标头

来自分类Dev

MailChimp 和 SquareSpace API 集成

来自分类Dev

Mailchimp如何在JavaScript中调用mailchimp 3.0 API

来自分类Dev

MailChimp 从 Ruby on Rails 取消订阅/重新订阅

来自分类Dev

如何检查MailChimp中是否已订阅电子邮件?

来自分类Dev

如何检查MailChimp中是否已订阅电子邮件?

来自分类Dev

使用PHP检查电子邮件是否已订阅MailChimp API 3.0中的列表

来自分类Dev

Mailchimp使用jQuery AJAX订阅吗?

来自分类Dev

在 Mailchimp 中重新确认订阅者

来自分类Dev

MailChimp API 2.0批量订阅PHP

来自分类Dev

用Ruby中的MailChimp API 3.0订阅电子邮件

来自分类Dev

MailChimp API 3.0批量/批量订阅

来自分类Dev

如何使用ruby处理mailchimp模板?

来自分类Dev

如何使用ruby处理mailchimp模板?

来自分类Dev

Python 2.7 Mailchimp3 401 状态“API 密钥丢失”

来自分类Dev

无法使MailChimp API v2工作

来自分类Dev

NET调用MailChimp API v3.0

来自分类Dev

通过MailChimp API添加订户

来自分类Dev

MailChimp API 2.0时区

来自分类Dev

连接到MailChimp v3.0 API