Проблема при запросе создания сегментов API v3 с помощью PHP-оболочки

У меня есть тест-драйв для 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, но не будут иметь никаких условий. Смотрите скриншот –

введите описание изображения здесь

Как переопределить эту проблему?

Solutions Collecting From Web of "Проблема при запросе создания сегментов API v3 с помощью PHP-оболочки"

Вам не хватает параметра condition_type. Он должен быть выбран из списка, предоставленного MailChimp в документации к конечной точке. Например, если поле «type» из вашего списка MailChimp является текстовым полем, вы должны использовать 'condition_type': 'TextMerge' . В этом случае условия должны иметь следующий формат:

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

Однако MailChimp МОЖЕТ иметь ошибку в этой конечной точке, так как TextMerge работает только в поле EMAIL. Я недавно наткнулся на эту проблему:

Mailchimp api v3 – невозможно создать сегмент, основанный на поле слияния TEXT

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