如何以及在哪里将变量传递到MailJet中的广告系列?

时间:2019-05-10 08:49:35

标签: php curl mailjet

我正在尝试使用MailJet api v3自动生成广告系列草稿

  1. 我在他们的网站上使用MJML创建了一个模板,简单的模板(模板ID为$tId=829886;):
 <mj-raw> {% for products in var:product %} </mj-raw>
      <p>{%product.name %}</p>
      <p>{%product.price%}</p>
 <mj-raw>{% endfor %}</mj-raw>
     

由于语言环境为it_IT,我同时包含了[[UNSUB_LINK_IT]]和[[UNSUB_LINK_EN]]

  1. 在我的php代码中,我正在使用:
$tId=829886;
$products=[
    ["name"=>'Product1','price'=>'free'],
    ['name'=>'Product2','price'=>'1 mil']
];
  1. 广告活动草案
$body = [
    'Locale' => "it_IT",
    'Sender' => "MisterMailjet",
    'SenderEmail' => "s.s***i@***.p**",
    'Subject' => "Greetings from Mailjet",
    'ContactsListID' => "13",
    'Title' => "Friday newsletter".uniqid(),
    'EditMode' => 'tool2',
    'TemplateID'=>$tId,
    'Variables' => [
        'products' => $products
    ], ]; 
$response = $mj->post(Resources::$Campaigndraft, ['body' => $body]);
  1. 我尝试将“变量”传递给$response = $mj->post(Resources::$CampaigndraftDetailcontent, ['id' => $cId, 'body' => $body]);,但我总是得到
  

无效的json输入:对象“”->“ TCampaignDraft”没有属性   “变量”

有人可以链接或向我展示$ Campaigndraft或$ CampaigndraftDetailcontent的示例,他们在其中传递一些变量进行循环,我似乎无法在网上找到任何东西。我不确定是否可以再将var传递给广告系列。请提供任何帮助

1 个答案:

答案 0 :(得分:0)

当前,用于个性化的高级“模板语言”仅适用于所谓的事务性消息,不适用于广告系列。因此,用于创建广告系列的/campaigndraft资源无法识别用于在Send API调用中声明变量的“变量”或“变量”属性。

实际上,在指南here中,您会看到

  

Mailjet模板语言仅适用于交易消息。

据我所知,Campaigns中也应该有一个模板语言版本,但这将与使用联系属性而不是变量一起使用。

我希望能有所帮助。