问题描述
我想在将成员添加到Drupal 8中的mailchimp列表中的成员后添加标签。我使用PHP。
基于我在以下位置找到的信息: https://mailchimp.com/developer/guides/organize-contacts-with-tags/#label-a-contact-with-a-tag
以下代码有效:
$response_tags = $mailchimp->lists->getListMemberTags($list_id,$subscriber_hash);
\Drupal::logger('mailchimp_get_tags')->notice('<pre><code>' . print_r($response_tags,TRUE) . '</code></pre>');
stdClass Object
(
[tags] => Array
(
[0] => stdClass Object
(
[id] => ****
[name] => 1_year
[date_added] => 2020-09-30T14:09:29+00:00
)
)
[total_items] => 1
)
$mailchimp->lists->updateListMemberTags($list_id,$subscriber_hash,[
"tags" => [
"name" => "my_new_tag","status" => "active"
]
]);
错误:
GuzzleHttp \ Exception \ ClientException:客户端错误:POST https://***.api.mailchimp.com/3.0/lists/***/members/***/tags
导致400 Bad Request
响应:{“ type”:“ http://developer.mailchimp.com/documentation/mailchimp/guides/error-glossary/”,“ title”:“无效的资源”,“ stat(已截断...),位于GuzzleHttp \ Exception \ RequestException :: create()(/ home / d8 / drupal-project / vendor / guzzlehttp / guzzle / src / Exception / RequestException.PHP的第113行)。
=> https://mailchimp.com/developer/guides/marketing-api-conventions/#error-glossary
list_id 是正确的, hash 是正确的,但是向mailchimp列表中的现有成员添加标签无效。
解决方法
文档不是很清楚。 “名称”和“状态”必须是一个数组。 这是有道理的...但是没有充分记录。
$mailchimp->lists->updateListMemberTags($list_id,$subscriber_hash,[
"tags" => [
["name" => "my_new_tag","status" => "active"]
]
]);