Rumah > Soal Jawab > teks badan
Saya menggunakan sumber penulis MailchimpMarketingApiClient() untuk menambahkan borang langganan asas Mailchimp ke tapak web. Menambah pengguna nampaknya berfungsi dengan baik, tetapi apabila cuba menambah pengguna yang sedia ada, saya hanya mengharapkan respons json yang bagus supaya saya dapat menangkap ralat itu dan memaparkannya kepada pengguna, tetapi saya mendapat bahagian pelanggan GuzzleHttpException berikut pengecualian:
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...)
Dokumentasi nampaknya tidak banyak menjelaskan, saya juga perlu mencari cara yang betul untuk menangkap ralat pada limpahan tindanan kerana dokumentasi Mailchimps... kurang! Ini kodnya:
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(); }
Ini ialah dokumentasi mailchimp yang saya gunakan: https://mailchimp.com/developer/api/marketing/list-members/add-member-to-list/
Saya boleh menangkap kod ralat 400 dan mengeluarkan ralat tersuai, tetapi saya pasti saya mesti melakukan sesuatu yang salah untuk mendapatkan respons yang tidak berguna daripada API Mailchimp?
Terima kasih banyak, Andy, atas semua bantuan.
P粉7978557902024-02-26 00:09:15
Saya mengalami masalah yang sama, jadi saya akhirnya menunjukkan mesej ralat dengan menukar klausa tangkapan terakhir kepada yang berikut untuk melihat keseluruhan ralat:
catch (GuzzleHttp\Exception\ClientException $e) { echo '' . var_export($e->getResponse()->getBody()->getContents()).''; $errors[] = $e->getMessage(); }
Ini mendedahkan ralat dahsyat berikut, yang telah dipotong setakat ini:
{ "type":"http://developer.mailchimp.com/documentation/mailchimp/guides/error-glossary/", "title":"Invalid Resource", "status":400, "detail":"Isabell_Murazik@example.com looks fake or invalid, please enter a real email address.", "instance":"fcc1d762-2475-40a6-bc7f-4ac7f3fb7902" }
Jadi, soalan saya @example.com
nampak palsu atau tidak sah...
Mencuba e-mel yang berbeza, malah @test.com
berkesan.
Saya tidak dapat menjamin anda bahawa ini akan menjadi masalah anda juga, tetapi menyemak butiran ralat pastinya merupakan langkah pertama yang baik!