通过PHP包装器请求创建段API v3时出现问题

时间:2017-01-04 13:45:55

标签: php mailchimp-api-v3.0

我使用PHP包装器为Mailchimp API v3进行了测试。它对我很有用但是当我使用POST为#34;创建细分"创建一个请求时收到错误(附上截图):

请求代码是(通过关联数组) -

$api_key = "xxxxxxxxxxxxxxxx-us11";
$list_id = "1xx2xx3xx4xx";
$MailChimp = new MailChimp($api_key);
$result = $MailChimp->post('lists/' . $list_id . '/segments', array('name' => 'Testing Data',
    'options' => array('match' => 'all',
        'conditions' => array('field' => 'type', 'op' => 'is', 'value' => 'Testing'))
        ));

此请求调用返回以下错误 -

  

数组(大小= 2)'字段' =>字符串' options.conditions' (长度= 18)   '消息' => string' Schema描述了数组,而是找到了对象'   (长度= 44)

enter image description here

我也会尝试创建Request(通过关联数组) -

方法1:

$api_key = "xxxxxxxxxxxxxxxx-us11";
$list_id = "1xx2xx3xx4xx";
$MailChimp = new MailChimp($api_key);
$result = $MailChimp->post('lists/' . $list_id . '/segments', array('name' => 'Testing Data',
    'options' => array('match' => 'all',
        'conditions' => array(array('field' => 'type', 'op' => 'is', 'value' => 'Testing')))
        ));

方法2:

$api_key = "xxxxxxxxxxxxxxxx-us11";
$list_id = "1xx2xx3xx4xx";
$MailChimp = new MailChimp($api_key);
$result = $MailChimp->post('lists/' . $list_id . '/segments', array('name' => 'Testing Data 4',
    'options' => array('match' => 'all',
        'conditions' => array(array('field' => 'type'), array('op' => 'is'), array('value' => 'Testing')))
        ));

这两种方法都会在mailchimp帐户上创建段,但没有任何条件。见截图 -

enter image description here

如何覆盖此问题?

1 个答案:

答案 0 :(得分:0)

您缺少condition_type参数。它应该从端点文档中的MailChimp提供的列表中选择。 例如,如果MailChimp列表中的字段“type”是文本字段,则应使用'condition_type': 'TextMerge'。在这种情况下,条件应具有以下格式:

[
    {
        'condition_type': 'TextMerge',
        'field': 'type',
        'op': 'is',
        'value': 'Testing'
    }
]

但是,MailChimp可能在此端点中存在错误,因为TextMerge仅适用于EMAIL字段。我最近也偶然发现了这个问题:

Mailchimp api v3 - can't create segment based on a TEXT merge field

https://github.com/drewm/mailchimp-api/issues/160