添加兴趣组在Mailchimp API 3中创建新的子网格时

时间:2016-06-03 12:56:02

标签: php mailchimp mailchimp-api-v3.0

希望得到一些帮助,因为无法在任何地方找到答案。

我使用以下PHP函数将订阅者添加到mailchimp。这很好用。我需要做的是为用户添加一个或多个分配的组兴趣。例如,我有一个名为" Test Group"其中包含两个兴趣"测试1"和"测试2"。如何修改以下函数以包含一个或多个兴趣值?

function mc_subscribe($email, $fname, $lname, $apikey, $listid, $server) {

    $auth = base64_encode( 'user:'.$apikey );
    $data = array(
        'apikey'        => $apikey,
        'email_address' => $email,
        'status'        => 'subscribed',
        'merge_fields'  => array(
            'FNAME' => $fname,
            'LNAME' => $lname
            )
        );
    $json_data = json_encode($data);
    $ch = curl_init();
    curl_setopt($ch, CURLOPT_URL, 'https://'.$server.'api.mailchimp.com/3.0/lists/'.$listid.'/members/');
    curl_setopt($ch, CURLOPT_HTTPHEADER, array('Content-Type: application/json',
        'Authorization: Basic '.$auth));
    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_data);
    $result = curl_exec($ch);

    return $result; 

};

1 个答案:

答案 0 :(得分:1)

The documentation包含足够的信息来解决这个问题,即使它没有直接说明。

您需要在请求中添加interests个对象。它应该将兴趣ID作为键,将布尔值作为假。因此,您可以按如下方式更新上面的代码:

$data = array(
    'email_address' => $email,
    'status'        => 'subscribed',
    'merge_fields'  => array(
        'FNAME' => $fname,
        'LNAME' => $lname
    ),
    'interests'     => array(
        '9143cf3bd1': true
    )
);

请注意,您需要从API获取ID,因为无法从Web应用中收集这些ID,并且您还应该从请求中删除不再使用的apikey元素。