我正在尝试使用MailchimpMarketing\ApiClient() composer资源向网站添加基本的Mailchimp订阅表单。添加用户似乎正常工作,但当尝试添加已存在的人时,我希望只收到一个漂亮的JSON响应,以便我可以捕获错误并向用户显示它,但实际上我收到以下GuzzleHttp\Exception\ClientException:
Client error: `POST https://us10.api.mailchimp.com/3.0/lists/xxxxxxxxxx/members` resulted in a `400 Bad Request` response:
{"type":"http://developer.mailchimp.com/documentation/mailchimp/guides/error-glossary/","title":"Member Exists","status" (truncated...)
文档似乎并没有解释太多,我不得不像从stackoverflow上那样找到捕获该错误的正确方法,因为Mailchimp的文档.. 不足!这是代码:
try {
$response = $mailchimp->lists->addListMember($this->settings_helper->get('mailchimp_list_id'), [
"email_address" => $form->get_field_value('email'),
"status" => "subscribed",
"merge_fields" => [
"FNAME" => $first_name,
"LNAME" => $last_name
]
]);
if ($response->getId()) {
$this->add_json_success($this->settings_helper->get('mailchimp_success_message'));
}
} catch (MailchimpMarketing\ApiException $e) {
$errors[] = $e->getMessage();
} catch (ClientErrorResponseException $e) {
$errors[] = $e->getMessage();
} catch (GuzzleHttp\Exception\ClientException $e) {
$errors[] = $e->getMessage();
}
这是我使用的Mailchimp文档:https://mailchimp.com/developer/api/marketing/list-members/add-member-to-list/
我可以捕获400错误代码并输出自定义错误,但我相信我一定做错了什么才会从Mailchimp API得到如此没用的响应?
非常感谢,安迪,欢迎任何帮助。