0

将新订户从我们的 CRM 流入 MailChimp 很容易,但我现在需要做的是仅根据他们的电子邮件地址获取单个客户记录,并从 MailChimp API 获取他们的 MailChimp ID。

MailChimp API 3.0 文档包含有限的使用过滤器进行 GET 调用的示例。我认为可以在不检索整个成员列表的情况下过滤结果,这就是脚本现在正在做的事情,但我只需要一个客户记录,而不是整个列表,否则我会收到每个成员的整个 JSON 字符串在列表中,将这个庞大的字符串编码为一个数组,然后我需要遍历 JSON 数组以找到具有匹配电子邮件地址的记录,这对我来说似乎非常低效。 我一定遗漏了一些在 MailChimp API 3.0 文档中不容易找到的东西,不是吗?!

我正在使用 PHP 库,但这没关系,我真的只需要知道如何构建 API 调用——正确的 URL(我可以附加?email_address=EMAIL_TO_FILTER尝试但没有用)和 JSON 数组结构。我与 MailChimp API 成功连接并构建了一个mailChimpApiRequest()方法,如下所示:

function mailChimpApiRequest($method='POST', $url, $postFields = null){

    $ch  = curl_init();
    curl_setopt($ch, CURLOPT_URL, $url);

    $headerArr=array(   'Authorization: '  . $this->apikey);

    if($method!='POST' && !empty($method)) {
      //Not needed: $headerArr[] = 'X-HTTP-Method-Override: ' . $method;
    }

    curl_setopt( $ch, CURLOPT_CUSTOMREQUEST, $method );
    curl_setopt($ch, CURLOPT_HTTPHEADER,$headerArr );
    curl_setopt($ch, CURLOPT_POST, true);

    if ($postFields) {
        if ($method!=''){    $postFields['method']=$method;}

        curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($postFields));
        curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
    }

    $curl_response = curl_exec($ch);
    curl_close($ch);

    return $curl_response;
}

有人可以帮我弄清楚上面传递给这个方法的内容$url和数组吗?$postFieldsmailChimpApiRequest()

4

2 回答 2

0

只需在 URL 后面加上电子邮件地址的 MD5,全部小写。太容易了,我在 MailChimp API 文档中错过了。

于 2015-09-11T15:53:46.743 回答
0

你明白了亚伦......希望这可以帮助遇到同样问题的其他人:http: //developer.mailchimp.com/documentation/mailchimp/reference/lists/members/#read-get_lists_list_id_members_subscriber_hash

如果您无法访问该 URL,以下是摘要:对 URL 使用
HTTPGET请求,该 URL是列表成员电子邮件地址的小写版本的 MD5 哈希。/lists/{list_id}/members/{subscriber_hash}subscriber_hash

于 2017-09-04T14:48:58.263 回答