Mailchimp V3 以兴趣为参数订阅

Posted

技术标签:

【中文标题】Mailchimp V3 以兴趣为参数订阅【英文标题】:Mailchimp V3 subscribe with interests as parameter 【发布时间】:2021-08-16 19:45:05 【问题描述】:

我正在尝试使用 C# 向 mailchimp 发送订阅/注册请求。现在我能够正确发送它,但我需要添加一个新参数,即 INTERESTS 字段。我很难找到样品,任何人都可以帮我解决这个问题。现在我有这个作为订阅参数

var subscribeRequest = new

     email_address = subscriber.Email,
     status = subscriber.Status,
     merge_fields = new
     
        FNAME = subscriber.MergeField.FName,
        LNAME = subscriber.MergeField.LName,
        COUNTRY = subscriber.MergeField.Country
     
;

var requestJson = JsonConvert.SerializeObject(subscribeRequest);
return requestJson;

现在如何在此处添加兴趣参数?以下是我将使用的 ID

Interest ID = 4bc11d46dc
Category ID = b2602901cd
Options 1 = a6c2aa3f6c
Option 2 = 7466ab2eb9
Option 3 = 135cd6f22d

现在我在这个兴趣组下有 3 个选项。我只想将第一个选项设置为 true,那么我该怎么做呢?

我尝试了类似的方法,但它不正确。非常感谢任何帮助

var subscribeRequest = new

     email_address = subscriber.Email,
     status = subscriber.Status,
     merge_fields = new
     
        FNAME = subscriber.MergeField.FName,
        LNAME = subscriber.MergeField.LName,
        COUNTRY = subscriber.MergeField.Country
     ,
     interests = new 
       "4bc11d46dc" = true
     
;

var requestJson = JsonConvert.SerializeObject(subscribeRequest);
return requestJson;

【问题讨论】:

【参考方案1】:

好的,找到了答案。对于那些和我有同样问题的人,解决这个问题的方法是让你的代码如下所示

var subscribeRequest = new

     email_address = subscriber.Email,
     status = subscriber.Status,
     merge_fields = new
     
        FNAME = subscriber.MergeField.FName,
        LNAME = subscriber.MergeField.LName,
        COUNTRY = subscriber.MergeField.Country
     ,
     interests = new 
       "a6c2aa3f6c" = true // <<--- instead of using 4bc11d46dc use the value a6c2aa3f6c
     
;

var requestJson = JsonConvert.SerializeObject(subscribeRequest);
return requestJson;

这里的想法是只包含选项的兴趣 ID。对于这种情况,我有 1 个类别,有 3 个选项。因此,要使用类别中的选项之一注册/注册,您只需包含该选项的 ID,并且不需要 LIST ID 或 CATEGORY ID 的 ID。只需其中一个选项的 ID 即可。

要找出列表中的 id,您可以创建一个 bash 脚本并查询结果,如下所示

#!/bin/bash
# My first script
dc="<your data-center and can be found in the apikey after `-` character>"
apikey="<your api_key>"
listid="<your listid or audienceid>"

curl -sS \
  "https://$dc.api.mailchimp.com/3.0/lists/$listid/interest-categories" \
  --user "anystring:$apikey"

这将为您提供该列表下的所有categories。现在使用从结果中检索到的类别 ID,您可以创建另一个 bash 脚本来查询该 listing-category id 中的 OPTION ID,如下所示

#!/bin/bash
# My first script
dc="<your data-center and can be found in the apikey after `-` character>"
apikey="<your api_key>"
listid="<your listid or audienceid>"
categoryid="<your categoryid found from previous bash script>"

curl -sS \
  "https://$dc.api.mailchimp.com/3.0/lists/$listid/interest-categories/$categoryid/interests" \
  --user "anystring:$apikey"

这将为您提供列表类别选项的ID。现在使用此结果中的 ID,您可以在发送订阅请求时将其添加到 interests 参数下,如上面的代码所示。

希望这能指导任何有问题的人,如果你觉得这有帮助,请点个赞。如果您想要我在 C# 中的操作方式的副本,将发布代码或脚本

参考:

https://newbedev.com/can-you-get-a-mailchimp-interest-group-id-without-using-the-api

https://rudrastyh.com/mailchimp-api/interest-groups.html

https://sungkhum.medium.com/how-to-find-my-mailchimp-list-id-and-interest-id-with-a-mac-now-that-the-api-playground-is-dead-21b179401394

https://mailchimp.com/developer/marketing/api/interests/

【讨论】:

我在这上面花了几个小时。我使用的是 category_id,我认为就是这样。有请求登陆 Mailchimp,但添加 interests 会阻止它,如果我放置除有效选项 ID 之外的任何内容。谢谢!

以上是关于Mailchimp V3 以兴趣为参数订阅的主要内容,如果未能解决你的问题,请参考以下文章

Mailchimp API V3 jQuery Ajax POST 订阅者

Mailchimp API V3 jQuery Ajax POST 订阅者

使用 Mailchimp api v3.0 将订阅者添加到分段

使用 Mailchimp 的 API v3 将订阅者添加到列表

使用 MailChimp API v3.0 创建新的订阅者验证错误

MailChimp API v3 - 无法修补/更新?