Mailchimp addListMember melaporkan ralat klien 400 Permintaan Buruk apabila sudah wujud
P粉794851975
P粉794851975 2024-02-25 14:06:06
0
1
460

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粉794851975
P粉794851975

membalas semua(1)
P粉797855790

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!

Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan