【发布时间】:2020-12-22 14:17:13
【问题描述】:
我正在使用他们的 MailchimpMarketing\ApiClient() 作曲家资源向网站添加一个基本的 Mailchimp 订阅表单。添加用户似乎工作正常,但是当尝试添加已经存在的人时,我希望只有一个很好的 json 响应,以便我可以捕获该错误并将其显示给用户,但我得到以下 GuzzleHttp\Exception \客户端异常:
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...)
文档似乎并没有真正解释太多,我必须找到正确的方法来从堆栈溢出中捕获该错误,因为 Mailchimps 文档是......缺乏!代码如下:
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 获得如此无用的响应?
非常感谢,andy 并感谢所有帮助。
【问题讨论】:
标签: php api exception mailchimp guzzle