0

我正在尝试在 SendGrid 动态模板中添加社交媒体链接,特别是它是通过 LinkedIn 共享内容的链接。社交媒体链接调用 RESTful API,因此需要提供许多参数,就像表单一样。问题是,除非这些参数是“百分比编码”的,否则 SendGrid 的编辑器会产生错误。

这是一个 URL,旨在使电子邮件收件人能够将成就证书添加到他们的 LinkedIn 个人资料中。它是按照这些说明创建的。

https://www.linkedin.com/profile/add?startTask=FS_Cert&name=Certificate%20Of%20Achievement&organizationId=26650704&issueYear=2021&issueMonth=6&certId=20210622-001&certUrl=https://certificates.nextid.com/certificate?id%3D291b71fb-79cb-4db4-bfa6-108d0c9eb2d6

这个 URL 几乎可以工作,但是 - 因为它包含一个嵌套 URL 作为最后一个参数 - 我需要将最终的 '=' 更改为 '%3D'。通过这个小修改,我可以打开像 Thunderbird 这样的电子邮件客户端并将其粘贴为 HTML(即作为链接的目标),然后可以将证书添加到收件人的 LinkedIn 个人资料中。我还可以添加图像以使其成为可点击按钮。

但是,如果我将此 URL 粘贴到 SendGrid 中的动态模板中,与号“&”会导致编辑器反对并显示错误:“预期命名实体,没有得到”。我将它们更改为 %26 并以这个修改后的 URL 结束,这不会在 SendGrid 编辑器中导致任何错误。

https://www.linkedin.com/profile/add?startTask=FS_Cert%26name=Certificate%20Of%20Achievement%26organizationId=26650704%26issueYear=2021%26issueMonth=6%26certId=20210622-001%26certUrl=https://certificates.nextid.com/certificate?id%3D291b71fb-79cb-4db4-bfa6-108d0c9eb2d6

不幸的是,当您将该 URL 粘贴到浏览器中时,该 URL 不再有效,并且在 SendGrid 电子邮件中创建的链接无法正确解析。执行 RESTful API 调用,但不传递参数。

有没有人建议如何将 RESTful API URL 插入 SendGrid 电子邮件而不导致编辑器拒绝它。也许一些Javascript?

4

1 回答 1

0

此问题已通过正确的 URL 转义字符和关闭 SendGrid 链接跟踪得到解决。

  1. 因为我们在 HTML 中分隔参数(SendGrid 编辑器使用 HTML),所以“&”的正确转义字符是“&” 而不是“%26”。它只会成为已发送电子邮件中的 URL。我们仍然需要使用百分比替换来将最后一个参数中的 '=' 更改为 %3D,因为等号嵌入在 certUrl 参数的 URL 中。我们还需要将空格转换为“%20”。所以最终修改的链接应该是:
https://www.linkedin.com/profile/add?startTask=FS_Cert&name=Certificate%20Of%20Achievement&organizationId=26650704&issueYear=2021&issueMonth=6&certId=20210622-001&certUrl=https://certificates.nextid.com/certificate?id%3D291b71fb-79cb-4db4-bfa6-108d0c9eb2d6
  1. 但是,由于 SendMail 链接跟踪功能会修改 URL,因此这会变得很糟糕(搞砸了)。URL 参数总是被截断并且没有传递到 LinkedIn 个人资料表单,这显然是由于在浏览器中重写了 SendGrid 跟踪 URL。所以我在链接标签中添加了参数“clicktracking=off”,现在它可以工作了(并且更容易调试)。这是最终版本:
<a clicktracking=off
href="https://www.linkedin.com/profile/add?startTask=FS_Cert&amp;name=Certificate%20Of%20Achievement&amp;organizationId=26650704&amp;issueYear=2021&amp;issueMonth=6&amp;certId=20210622-001&amp;certUrl=https://certificates.nextid.com/certificate?id%3D291b71fb-79cb-4db4-bfa6-108d0c9eb2d6">
于 2021-07-05T06:27:53.727 回答