Mailchimp API: отправка кампании пользователям с тегами

#mailchimp #mailchimp-api-v3.0

#mailchimp #mailchimp-api-v3.0

Вопрос:

Я пытаюсь отправить кампанию в сегмент на основе тегов (то есть перечислить участников с определенным тегом), используя вызовы API с mailchimp3 для Django, но я не могу найти правильную структуру json для ее создания, это то, что у меня пока есть:

         campaign_creation = {
        "type": "regular",
        "recipients": {
            "list_id": LIST_ID,
            "segment_opts": {
                "match": "any",
                "conditions": [{
                    "condition_type": "StaticSegment",
                    "op": "contains",
                    "field": "Tags",
                    "value": ["foo"]
                }]
            }
        },
        "settings": {
            "subject_line": campaign_label,
            "title": campaign_label,
            "from_name": FROM_NAME,
            "reply_to": REPLY_TO,
        },
    }
  

Но при этом я получаю ошибку:

mailchimp3.mailchimpclient.MailChimpError: {‘тип’: ‘http://developer.mailchimp.com/documentation/mailchimp/guides/error-glossary /’, ‘заголовок’: ‘Недопустимый ресурс’, ‘статус’: 400, ‘подробности’: «Не удалось проверить отправленный ресурс. Подробные сведения о конкретных полях см. в массиве «ошибки».», ‘экземпляр’: ‘88679b18-6e55-4463-9c62-06d47b825f77’, ‘ошибки’: [{‘поле’: ‘получатели.segment_opts.conditions.item:0’, ‘сообщение’: ‘Данные не соответствуют ни одной из схем, описанных в anyOf.’}]}

Стоит упомянуть, что процедура создания и отправки кампании всему списку работает идеально, просто сбой, потому что я добавил часть segment_opts

У кого-нибудь может быть идея, как заставить это работать? Заранее спасибо!

Ответ №1:

Возможно, это старый вопрос, но вот ответ — ваш объект StaticSegment может быть неправильным. В моем случае это работает так, однако, если вы хотите использовать несколько тегов, то, возможно, правильный способ сделать это — добавить еще один StaticSegment для каждого тега. Кроме того, вы передаете foo, и я предполагаю, что вы знаете, что это должен быть идентификатор тега.

 'conditions' => [
    [
      'condition_type' => 'StaticSegment',
      'field' => 'static_segment',
      'op' => 'static_is',
      'value' => $tagId
    ]
 ]