Не могу понять, куда поместить идентификатор шаблона в вызове mailjet API - PullRequest
0 голосов
/ 11 апреля 2019

Я отправляю кампанию с использованием mailjet API. Моя функция сделать это в настоящее время выглядит так:

public function sendCampaign($listName, $config, $vars) {
    //First we need to set up a draft of the campaign.
    $listId = $this->config['lists'][$listName];
    $title = $config['subject'] . "_" . time();
    $requestBodyOne = [
        'Locale' => 'de_DE',
        'Sender' => $config['fromName'],
        'SenderEmail' => $config['fromEmail'],
        'Subject' => $config['subject'],
        'ContactsListID' => $listId,
        'TemplateID' => $config['template'],                                //TODO: Figure out how to get templating to work -- right now, this is being ignored!
        'Title' => $title,
    ];
    $responseOne = $this->client->post(Resources::$Campaigndraft, ['body' => $requestBodyOne]);

    if(!$responseOne->success()) {
        $responseOne->getStatus();
    }

    $data = $responseOne->getData();
    $draftId = $data[0]['ID'];

    //Now we add our body to the draft
    $requestBodyTwo = [
        'Html-part' => $vars['body'],
    ];
    $responseTwo = $this->client->post(Resources::$CampaigndraftDetailcontent, ['id' => $draftId, 'body' => $requestBodyTwo]);
    if(!$responseTwo->success()) {
        $responseTwo->getStatus();
    }

    //Now we can send the campaign
    $responseThree = $this->client->post(Resources::$CampaigndraftSend, [
        'id' => $draftId,
        'TemplateID' => $config['template']                                 //TODO: Figure out how to get templating to work -- right now, this is being ignored!
    ]);

    die(dump($responseThree));
}

(Я понимаю, что здесь есть некоторые запахи - я разобью их на более мелкие функции, как только получу большую).

Хотя я устанавливаю TemplateID в двух местах, я не могу заставить mailjet использовать шаблон (который принимает одну переменную "body"). Вместо этого мое сообщение отправляется в виде HTML без шаблона упаковки. Я подтвердил, что мой шаблон существует.

Что я, вероятно, делаю здесь неправильно?

====

Редактировать: изменение запроса так, чтобы он выглядел так:

    $requestBodyTwo = [
        'Vars' => ['body' => $vars['body']]
    ];

... приводит к ошибке 400: «Свойства не поддерживаются в полезной нагрузке JSON»

1 Ответ

0 голосов
/ 12 апреля 2019

Завершение цикла на этом: мы закончили с использованием конечной точки / send и указали значение для MJ-кампании. Это добилось цели.

https://dev.mailjet.com/reference/email/send-emails/

...