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 将标签添加到列表中的现有成员
Mailchimp API v3.0 添加待处理成员而无需确认电子邮件
如何通过 api 向 mailchimp 订阅者添加“标签”
在列表 mailchimp api 中添加成员不起作用 [list memeber] cURL:提供的 API 密钥链接到不同的数据中心(状态:403)