簡體   English   中英

SendGrid API - 無法將動態模板數據與舊模板一起使用

[英]SendGrid API - Cannot use dynamic template data with a legacy template

嘗試按照此處的示例https://docs.sendgrid.com/ui/sending-email/how-to-send-an-email-with-dynamic-templates ,我將以下 JSON 發送到此 url:“ https://api.sendgrid.com/v3/mail/send”(在使用相同的代碼之前我已經發送了一個簡單的 email,現在我想嘗試一個帶有替換的模板):

{
    "personalizations":  [
                             {
                                 "subject":  "Test template email from SendGrid",
                                 "to":  [
                                            {
                                                "name":  "Neal Walters",
                                                "email":  "myRecipient@example.com"
                                            }
                                        ],
                                 "dynamic_template_data":  {
                                                               "Applicant_Name":  "John Doe",
                                                               "Send_Date":  "December 30, 2022"
                                                           }
                             }
                         ],
    "from":  {
                 "name":  "NealWalters(SendGrid)",
                 "email":  "mySender@example.com"
             },
    "template_id":  "bcab1b12-d922-4cdd-b6f5-9f39b16d9823"
}

並得到這個神秘的錯誤:

{"errors":[{"message":"Cannot use dynamic template data with a legacy template 
ID","field":"personalizations.0.dynamic_template_data","help":null}]}

我不知道什么是動態模板或遺留模板。 我復制了一個 Send Grid 的演示模板(Nonprofit Newsletter Email 模板)並添加了一些我自己的標簽。

當我使用模板名稱(“NealDemo Duplicate Nonprofit Newsletter Email Template”)而不是 GUID(我在編輯模板時從 URL 獲得)時,消息是相似的,但將其添加到上面的錯誤 - 這讓我問題是我可以使用模板名稱嗎? 如果“template_id”不是我保存的模板名稱,則不清楚如何找到它。

{"message":"The template_id must be a valid GUID, 
you provided 'NealDemo Duplicate Nonprofit Newsletter Email Template'.","field":"template_id","help":"http://sendgrid.
com/docs/API_Reference/Web_API_v3/Mail/errors.html#message.template_id"},{"message":"Unless a valid template_id is 
provided, the content parameter is required. There must be at least one defined content block. We typically suggest 
both text/plain and text/html blocks are included, but only one block is required.","field":"content","help":"http://s
endgrid.com/docs/API_Reference/Web_API_v3/Mail/errors.html#message.content"}]}

令人失望的是,這些未在此錯誤頁面上列出: https://docs.sendgrid.com/api-reference/mail-send/errors

有兩個模板編輯器嗎?

我用了這個: https://mc.sendgrid.com/design-library/your-designs/bcab1b12-d922-4cdd-b6f5-9f39b16d9823/editor

我沒有看到模板的任何其他 guid/id,所以我嘗試了 URL 中的“bcab1b12-d922-4cdd-b6f5-9f39b16d9823”。

但是現在我看到還有一個動態模板編輯器??? https://mc.sendgrid.com/dynamic-templates如下所述,我復制了您的一個演示模板,該模板底部已經有一些替換變量({{Sender_Name}} {{Sender_Address}},{{Sender_City }}, {{Sender_State}} {{Sender_Zip}}). 我剛剛在頂部添加了兩個我自己的。

我參考了這個: Getting "Cannot use dynamic template data with a legacy template" with non-legacy template

傳奇還在繼續。 我去了這個頁面: https://mc.sendgrid.com/dynamic-templates並且能夠復制我以前的模板,所以它可能是一個遺留模板。 它現在給了它一個清晰標記的模板 ID:d-a35d9d48ce304588bbebf7828811b473(看起來像一個“d-”后跟一個 guid)。

在此處輸入圖像描述

我通過 API 調用運行了它,沒有立即出現錯誤,但后來我得到了這個 email:

在此處輸入圖像描述

通常當我想不通的時候,要么是缺少文檔,要么是我正在快速閱讀它。

當我第一次設置我的帳戶時,顯然我單擊了一個將我帶到 SendGrid 主站點的鏈接,然后我在那里注冊了一個帳戶。 顯然這一步完全沒有必要(他們的網站也需要 2FA,與 Azure 分開)。 所以我在他們的網站上構建了我的模板,該模板與我在 Azure 中創建的帳戶不同。因此我能夠使用 Azure 中的令牌發送電子郵件,但任何時候我嘗試從我的第二個帳戶發送模板,當然,我的 Azure 帳戶無法識別它。

您可以通過以下鏈接在 Azure 中創建模板:

在此處輸入圖像描述 然后這個: 在此處輸入圖像描述

注 1 - 他們的“漂亮”設計仍在舊版模板下,“動態模板”似乎是 go 的較新首選方式。您可以構建“舊版模板”,然后顯然將其 HTML 復制到“動態模板” ”。

注意 2 - 我只是通過使用 SendGrid 打開支持票來解決這個問題。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM