cari

Rumah  >  Soal Jawab  >  teks badan

Mailchimp addListMember melaporkan ralat klien 400 Permintaan Buruk apabila sudah wujud

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粉794851975P粉794851975306 hari yang lalu497

membalas semua(1)saya akan balas

  • P粉797855790

    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!

    balas
    0
  • Batalbalas