dynamic_template_data не работает с интеграцией функций sendgrid и azure - PullRequest
0 голосов
/ 23 октября 2018

Пытаясь использовать транзакционный шаблон с интеграцией sendgrid с функцией Azure (javaScript), я отправляю следующий объект (удаленный адрес электронной почты и т. Д.):

const message = 
{  
   "personalizations":[  
      {  
         "to":[  
            {  
               "email":"[MY_EMAIL]",
               "name":"Rotem"
            }
         ],
         "dynamic_template_data":{  
            "rotem_test1":"wow"
         }
      }
   ],
   "from":{  
      "email":"[FROM_EMAIL]",
      "name":"name"
   },
   "reply_to":{  
      "email":"[REPLY_EMAIL]",
      "name":"name"
   },
   "template_id":"[CORRECT_TEMPLATE_ID]",
   "tracking_settings":{  
      "click_tracking":{  
         "enable":true
      }
   }
}
context.done(null,message);

также пытался использовать context.done(null,JSON.stringify(message)) с тем жерезультат: я получаю электронное письмо с правильным шаблоном, но без подстановки.

при отправке точно такого же объекта с помощью API https://api.sendgrid.com/v3/mail/send с использованием почтальона все работает хорошо.

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

1 Ответ

0 голосов
/ 24 октября 2018

Вы сделали все правильно, так как вы можете получать электронную почту, как ожидалось.

Проблема вызвана версией SDK.Свойство dynamic_template_data только что было добавлено в последней 9.10.0 Sendgrid C # SDK , но расширение привязки все еще использует старую версию, которая не знает, что такое dynamic_template_data.

Для 2.x function (проверьте настройки приложения Function на портале Azure, см. версию среды выполнения: 2.xxx (~ 2)), мы можем вручную установить новую версию SDK до обновления расширения.

Если вы разрабатываете локально

  1. Перейти в каталог проекта функции, удалить bin, папку obj.
  2. Редактировать файл extensions.csproj в проекте проекта, добавить последнюю версию Sendgrid <PackageReference Include="Sendgrid" Version="9.10.0" />.
  3. В этом каталогеоткройте консоль (терминал, Powershell и т. д.), введите func extensions install для восстановления пакетов.

Иное на портале Azure

  1. Остановите приложение функции.
  2. Доступ к консоли kudu с помощью функций платформы -> Расширенные инструменты (Kudu) -> Консоль отладки (CMD)
  3. Перейдите в D: \ home \ site \ wwwroot
  4. Удалите папку bin
  5. Измените extensions.csproj, добавьте <PackageReference Include="Sendgrid" Version="9.10.0" /> и сохраните изменения.
  6. В консоли ниже введите dotnet build extensions.csproj -o bin --no-incremental --packages D:\home\.nuget
  7. После того, как вы увидите Build succeeded, запустите приложение функции.

Для функции 1.x (время выполнения ~ 1), IБоюсь, что мы должны вручную отправлять электронную почту, используя модуль узла sendgrid , функция Sendgrid vesion в 1.x заблокирована, поэтому не может быть обновлена.

...