Mailchimp API 向新成员和现有成员添加标签

Posted

技术标签:

【中文标题】Mailchimp API 向新成员和现有成员添加标签【英文标题】:Mailchimp API adding tags to new and existing members 【发布时间】:2020-07-07 14:52:18 【问题描述】:

我正在尝试做一个简单的 JSON 调用来向新的或现有的订阅者添加标签。

它添加订阅者的名字、姓氏和电子邮件地址,但不添加标签。我不确定我做错了什么。

这是我所拥有的:

public function apiUrl() 
        $apiKey = $this->Key;
        $listId = $this->ListID;
        $memberId = $memberId = md5(strtolower($this->Email));

        $getapi = substr($this->escape($apiKey), strpos($this->escape($apiKey), '-') + 1);
        return 'https://' . $this->escape($getapi) . '.api.mailchimp.com/3.0/lists/' . $this->escape($listId) . '/members/' . $this->escape($memberId);
    

    public function jsonData() 
        return json_encode(array(
            'email_address' => $this->escape($this->Email),
            'status' => $this->escape($this->Status),

            'tags' => ['name' => 'Calendar Users', 'status' => 'active'],

            'merge_fields' => array(
                'FNAME' => $this->escape($this->FName),
                'LNAME' => $this->escape($this->LName)
            )
        ));
    

【问题讨论】:

您所说的“除 TAG 之外的一切都有效”到底是什么意思?您预计“TAG”会发生什么,而实际上发生了什么? 向该订阅者添加标签。它添加订阅者 fname、lname 和电子邮件,但不添加 TAG 您希望标签出现在哪里?您在查看什么来确定未添加标签? mailchimp 内部!您可以在某些订阅者进来时对其进行标记。mailchimp.com/developer/reference/lists/list-members/… 根据该页面,您应该向/lists/list_id/members/subscriber_hash/tags 发出 POST 请求。我看不出这段代码在哪里做的。 【参考方案1】:

实际上 Mailchimp API 提供向现有成员或联系人添加标签。所以你可以肯定地添加标签。添加新标签会有所帮助。

您可以在创建会员或联系人后添加标签。所以下面的帖子请求帮助您创建或添加标签。在这里你可以看到当我发送 post 请求时,我得到了响应代码 200 OK。因此,首先您需要准备带有所需参数(list_id,segment_id)的发布请求。您只需要在正文部分传递“email_address”。

所以您需要先创建标签,因为我们需要标签或段 id。要创建新标签,请发出以下请求。

POST- https://us8.api.mailchimp.com/3.0/lists/list_id/segments

在正文中你可以这样写 -


    "name":"Tag_Name",
    "static_segment":[]

因此,在成功创建标签后,您获得了段 id 并使用此 id,您可以将它(标签)添加到任何联系人或成员中。

添加标签的示例请求 -

POST- `https://us8.api.mailchimp.com/3.0/lists/list_id/segments/segments_id/members`

在正文中你可以这样写 -


    "email_address": "sample@email.com"
   

所以,继续做这件事。我附上一张图片供您参考,请看。祝你好运。

Postman request sample image

【讨论】:

是的,这在 Postman 和我创建的 Repl 中有效,但在实际代码中无效。【参考方案2】:

我找到了另一种在成员中添加标签的方法。我认为在创建成员/联系人时在成员/联系人中创建或添加标签更有帮助。

因此,您可以使用以下请求创建或添加标签 -

POST - https://us8.api.mailchimp.com/3.0/lists/list_id/members/member_id/tags

您需要在正文或请求中传递标签数据/信息。 见下文 -


    "tags": [
                
                    "name" : "Tag_Name_1",
                    "status" : "active"
                ,
                
                    "name" : "Tag_Name_2",
                    "status" : "active"
                
            ]
  

因此,通过上述过程,您可以将给标签添加到给定的成员或成员ID。请参阅下面的帖子请求图片以创建或添加标签,这将有所帮助。

Postman request sample image

注意-如果给定的list_id/audience下存在或可用的给定标签(标签名称),它将使用tag_id,如果不存在,它将创建标签并添加它的id(segment_id)。 p>

谢谢。

【讨论】:

【参考方案3】:

下面是如何删除已经分配的标签并只添加需要它的标签。


"tags": [
            
                "name" : "status-user",
                "status" : "inactive"
            ,                
            
                "name" : "Unsubscribed_over_email",
                "status" : "inactive"
            
            ,                
            
                "name" : "status-user",
                "status" : "active"
            
        ]

【讨论】:

以上是关于Mailchimp API 向新成员和现有成员添加标签的主要内容,如果未能解决你的问题,请参考以下文章

Mailchimp 使用 php 和 drupal 8 将标签添加到列表中的现有成员

通过 API 将 Mailchimp 成员添加为“未订阅”

不能对现有成员使用 upsert

Mailchimp API v3.0 添加待处理成员而无需确认电子邮件

如何通过 api 向 mailchimp 订阅者添加“标签”

在列表 mailchimp api 中添加成员不起作用 [list memeber] cURL:提供的 API 密钥链接到不同的数据中心(状态:403)