【问题标题】:Add contact and get contact ID in SendGrid在 SendGrid 中添加联系人并获取联系人 ID
【发布时间】:2021-10-11 15:01:29
【问题描述】:

我发现这比我认为的要困难得多。

我正在迁移到 SendGrid 的新营销功能。我们的代码要求在将联系人添加到 SendGrid 时,我们获取 SendGrid 联系人 ID 并将其与关联的用户一起存储在我们的数据库中。这样当用户帐户被删除,或者他们更改了他们的电子邮件地址(它将未经验证,因此在验证之前我们不会将其作为联系人存储在 SendGrid 中)时,我们可以删除 SendGrid 联系人。

当您添加联系人时,请求会被放入作业中,并会在将来的某个时间添加到 SendGrid。我们的服务器没有明显的回调可用,每隔几分钟轮询一次 SendGrid 以尝试搜索 SendGrid 联系人 ID 似乎是一个糟糕的设计。

将 SendGrid 联系人 ID 添加为联系人后,最好的方法是什么?如果用户在获取联系人 ID 之前更改了他们的电子邮件地址,则轮询联系人 ID 可能会导致一些竞争条件,其中联系人已添加但随后未被删除(以及其他难以设计的情况)。

【问题讨论】:

    标签: c# sendgrid sendgrid-api-v3


    【解决方案1】:

    这里是 Twilio SendGrid 开发人员宣传员。

    您是对的,没有通知已将联系人添加到您的列表中。您确实需要使用作业 ID 轮询 import contacts status endpoint,直到作业完成。作业可能需要一段时间,因为一个作业最多可以提交 30,000 个联系人。

    工作成功完成后,您可以使用get contacts by emails endpoint 获取联系人并使用联系人 ID 更新您的记录。

    如果您必须更改联系人但他们的上传工作尚未完成,您仍然可以对其进行更新,因为它使用 the same API to create a new job 并且更新是在电子邮件地址上键入的。

    如果用户更改了他们的电子邮件地址,那么您可以创建一个新工作来添加一个使用新电子邮件地址的新联系人。但是,您还需要在初始作业完成后排队作业以删除旧联系人。

    【讨论】:

      猜你喜欢
      • 2022-10-20
      • 1970-01-01
      • 2013-03-15
      • 1970-01-01
      • 2016-07-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多