首页 > 解决方案 > Mailchimp API 400 和 404 错误

问题描述

我正在使用自定义注册表单使用 Curl 将用户添加到 Mailchimp 列表 (API v3.0)。虽然该过程大部分时间都有效,但我偶尔会遇到 400 错误。

我认为问题可能与附加到 URL 字符串的 MD5 哈希返回的二进制值有关,因此我尝试使用 base 64 哈希。使用之前失败的注册数据,添加成功。

后来又几次注册成功后,收到404错误,提示url路径错误。当我捕获 url 时,我注意到 base 64 摘要包含一个“/”字符,它会终止该部分 url 字符串。

当我用另一个(随机)字母字符替换“/”时,添加正确完成......没有错误。

(1) 我不确定为什么二进制 md5 电子邮件哈希会偶尔产生错误,以及 (2) 如果可以使用正则表达式替换另一个字母字符来代替偶尔出现的“/”。似乎是一个潜在的问题黑客。

这现在似乎工作了(没有错误,很好的补充),但我担心修改后的 base 64 散列,它不再是电子邮件地址的真正散列:

my $digest = md5_base64(lc($email));
$digest =~ s/\//x/;

    my $curl = WWW::Curl::Easy->new;

my $url = "$endpoint/$listid/members/" . $digest;

由于使用已在其他地方发布的 Mailchimp API 代码的修改版本,所有通过注册表单添加的内容都可以正常工作。

标签: perlmailchimp

解决方案


推荐阅读