Не удается получить замены, работающие с SendGrid API V3

Я успешно отправляю электронные письма с помощью SendGrids Web API v3, но не могу заставить работать подстановки при отправке электронных писем с использованием шаблонов. Письма приходят успешно, но замены не происходит. Вот мой (упрощенный) шаблон SendGrid:

<html>
<head>
    <title></title>
</head>
<body>
<div>You can reset your password by clicking on this link:&nbsp;{callbackUrl}</div>

<%body%>

</body>
</html>

И вот тело в формате JSON, которое я отправляю:

{
   "personalizations":[
      {
         "to":[
            {
               "email":"destinationemail@gmail.com"
            }
         ]
      }
   ],
   "sub" : {
        "{callbackUrl}" : "www.mysite.com/changepassword"
   },
   "from":{
      "email":"example@example.com"
   },
   "template_id" :"5f852a2e-996b-4f04-be05-31766d1092d8",
   "subject":"Reset your password",
   "content": 
   [
    {"type": "text/plain", "value": "Thank you"}]
}

Письмо создается с правильным шаблоном, темой и отправляется на правильный адрес электронной почты, однако в теле письма содержится шаблон без замен:

You can reset your password by clicking on this link: {callbackUrl}

Thank you

Я в растерянности относительно того, что я делаю неправильно. Я использую в настоящее время Почтальон для отправки запроса при попытке отследить проблему.

1 ответ

Вам нужно использовать ключ substitutions под personalizationsне sub как сказано в документах. Также он имеет другую структуру, чем sub,

{
  "personalizations" : [ {
    "substitutions" : {
      ":name" : "John"
    },
    "subject" : "Hello from Java",
    "to" : [ {
      "email" : "john@example.com"
    } ]
  } ],
  "from" : {
    "email" : "john@example.com"
  },
  "template_id" : "11111111-1111-1111-1111-111111111111"
}
Другие вопросы по тегам