У меня есть тест-драйв для Mailchimp API v3 с использованием вашей PHP-оболочки. Это отлично работает для меня. Но когда я создаю запрос, используя POST для создания «Create Segment», вы получите сообщение об ошибке (приложите скриншот):
Код запроса (через ассоциативный массив) –
$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')) ));
Этот запрос вызывает возврат следующей ошибки –
array (size = 2) 'field' => string 'options.conditions' (length = 18) 'message' => string 'Schema описывает массив, объект найден вместо' (длина = 44)
Я также попытаюсь создать 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, но не будут иметь никаких условий. Смотрите скриншот –
Как переопределить эту проблему?
Вам не хватает параметра condition_type. Он должен быть выбран из списка, предоставленного MailChimp в документации к конечной точке. Например, если поле «type» из вашего списка MailChimp является текстовым полем, вы должны использовать 'condition_type': 'TextMerge'
. В этом случае условия должны иметь следующий формат:
[ { 'condition_type': 'TextMerge', 'field': 'type', 'op': 'is', 'value': 'Testing' } ]
Однако MailChimp МОЖЕТ иметь ошибку в этой конечной точке, так как TextMerge работает только в поле EMAIL. Я недавно наткнулся на эту проблему:
Mailchimp api v3 – невозможно создать сегмент, основанный на поле слияния TEXT