Ошибки Mailchimp API 400 и 404 - PullRequest
       10

Ошибки Mailchimp API 400 и 404

0 голосов
/ 27 сентября 2019

Я использую пользовательскую форму регистрации для добавления пользователей в список Mailchimp (API v3.0) с помощью Curl.Хотя этот процесс работает большую часть времени, иногда я получаю 400 ошибок.

Я подумал, что проблема может быть связана с двоичным значением, возвращаемым хешем MD5, который добавляется к строке URL, поэтому я попытался использовать базу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;

После использования этой модифицированной версии кода API Mailchimp, опубликованной в другом месте, все добавления через форму регистрации работали правильно.

...