Подтвердить что ты не робот

API Mailchimp не заменяет mc: редактировать разделы контента (используя рубиновую библиотеку)

У меня возникла проблема с заменой областей содержимого mc:edit в Mailchimp с содержимым, которое я предоставляю.

Электронная почта отправляется подписчикам, но ни один из предоставленных материалов не добавляется к письму. Может ли кто-нибудь увидеть, где я могу ошибиться?

Это script, который я использую:

campaign = mailchimp.campaigns.create(
    "regular",
    {
        "list_id" => list_id,
        "subject" => "Email Test",
        "from_email" => "[email protected]",
        "from_name" => "Edward",
        "to_name" => "The to name",
        "template_id" => 35089
    },
    {
        "sections" =>
        {
            "commit_stuff" => "Modified project to use XYZ ruby gem. #ABC-123",
            "content" => "This is the content",
            "more-content" => "This is more content"
        }
    }
)
result = mailchimp.campaigns.send(campaign["id"])

И это раздел внутри письма, которое я пытаюсь изменить:

<div mc:edit="commit_stuff" class="mcnTextContent">Use your own custom HTML</div>

<div mc:edit="content"></div>

<div mc:edit="more-content"></div>

Соответствующие документы:

4b9b3361

Ответ 1

Я боролся с этим в течение нескольких дней, используя менеджера шаблонов в MailChimp. Единственный способ, с помощью которого я работал, - экспортировать существующий шаблон, добавить тег mc: edit в код и затем загрузить его как настраиваемый шаблон.

Экспорт шаблона из MailChimp

  • Перейдите в раздел "Шаблоны"
  • Нажмите на стрелку "Редактировать", рядом с шаблоном, который вы хотите использовать с API
  • Выберите "Экспорт HTML"

Загрузка шаблона в MailChimp

  • Перейдите в раздел "Шаблоны"
  • Нажмите кнопку "Создать шаблон" в правом верхнем углу.
  • Нажмите "Код свой собственный"
  • Затем выберите "Импорт html"

Пример кода моего шаблона:

<div mc:edit="eventmessage">
Custom Event Message (replaced by API Call)
<br></div>

В качестве проверки я теперь мог видеть, что раздел теперь появляется при использовании вызова /templates/info

Как только я подтвердил, что Mailchimp увидел раздел шаблона, я использовал вызов /campaigns/create, как упоминалось выше, но пропустив определение html.

Обновленная кампания/создание (контент/разделы):

    },
"content": {
    "sections": {
        "eventmessage": "Event Message Content"
    },

},

Ответ 3

Как указано выше в комментарии @kateray, после часа попыток мне удалось вставить свой собственный HTML-код из моего бэкэнда в качестве контента кампании MailChimp через API 3.0. Для такого простого варианта использования довольно неприятно не иметь готового решения в своих документах. Конечно, API MailChimp не хватает кулинарной книги.

Итак, с самого начала:

  1. а) создать список рассылки с помощью API или с помощью веб-интерфейса MailChimp - создать список и б) добавить к нему получателей - добавить участников.

  2. Создайте новую кампанию через API , создайте кампанию или на ее веб-сайте. Не назначайте ему шаблоны.

  3. Присвойте список рассылки списку рассылки.

  4. Теперь установите содержание кампании с помощью этой конечной точки API. Установите тело запроса JSON, которое вы отправляете конечной точке:

    "html": "<p>This is your custom HTML assigned to your campaign as content.</p>"
}

и отправьте запрос.

  1. В ответ на этот запрос вы получите заданный вами HTML-код и его текстовую версию.

  2. Зайдите в веб-интерфейс MailChimp и убедитесь, что в кампании все флажки зеленые.

  3. Отправьте кампанию с помощью этого запроса API.

NB.

Ответ 4

Должно ли быть внутри блока "контент"? В примере API я вижу следующее:

    },
    "content": {
        "html": "example html",
        "sections": {
            "...": "..."
        },
        "text": "example text",
        "url": "example url",
        "archive": "example archive",
        "archive_type": "example archive_type"
    },

Ответ 5

Следующий PHP-код работал у меня

$api = new MCAPI($apikey);

$type = 'regular';

$opts['list_id'] = 'id';
$opts['subject'] = 'The subject';
/*<div mc:edit="std_content00">*/
$content = array('html_std_content00'=> $template);

$retval = $api->campaignCreate($type, $opts, $content);