首页 > 解决方案 > Mailchimp 使用 php 和 drupal 8 将标签添加到列表中的现有成员

问题描述

在将成员添加到列表后,我想在 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
)

但是下面的代码给出了 400 bad request 错误...

$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":"Invalid Resource" ,"GuzzleHttp\Exception\RequestException::create() 中的stat(截断...)(/home/d8/drupal-project/vendor/guzzlehttp/guzzle/src/Exception/RequestException.php 的第 113 行)。

=> https://mailchimp.com/developer/guides/marketing-api-conventions/#error-glossary

list_id是正确的,哈希正确的,但是向 mailchimp 列表中的现有成员添加标签不起作用。

标签: phpdrupaldrupal-8mailchimp

解决方案


文档不是很清楚。“名称”和“状态”必须是一个数组。这是有道理的......但它没有很好的记录。

$mailchimp->lists->updateListMemberTags($list_id, $subscriber_hash, [
   "tags" => [
     ["name" => "my_new_tag", "status" => "active"]
   ]
]);

推荐阅读