Mailchimp addListMember signale l'erreur client 400 Bad Request alors qu'elle existe déjà
P粉794851975
P粉794851975 2024-02-25 14:06:06
0
1
492

J'utilise la ressource d'écriture MailchimpMarketingApiClient() pour ajouter un formulaire d'abonnement Mailchimp de base au site Web. L'ajout d'un utilisateur semble fonctionner correctement, mais lorsque j'essaie d'ajouter un utilisateur déjà existant, j'attends juste une belle réponse json afin de pouvoir détecter cette erreur et l'afficher à l'utilisateur, mais j'obtiens l'exception GuzzleHttpException suivante côté client 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...)

La documentation ne semble pas vraiment expliquer grand chose, je dois aussi trouver le bon moyen de détecter les erreurs de débordement de pile car la documentation Mailchimps est... manquante ! Voici le code :

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();
}

Voici la documentation mailchimp que j'utilise : https://mailchimp.com/developer/api/marketing/list-members/add-member-to-list/

Je peux détecter le code d'erreur 400 et générer une erreur personnalisée, mais je suis sûr que je dois faire quelque chose de mal pour obtenir une réponse aussi inutile de l'API Mailchimp ?

Merci beaucoup, Andy, pour toute l'aide.

P粉794851975
P粉794851975

répondre à tous(1)
P粉797855790

J'ai eu le même problème, j'ai donc fini par indiquer le message d'erreur en changeant la dernière clause catch par la suivante pour voir l'intégralité de l'erreur :

catch (GuzzleHttp\Exception\ClientException $e) {
  echo '
' . var_export($e->getResponse()->getBody()->getContents()).'
'; $erreurs[] = $e->getMessage(); }

Cela révèle la terrible erreur suivante, qui a été tronquée jusqu'à présent :

{
    "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"
}

Donc, ma question est la suivante : @example.com semble faux ou invalide...

J'ai essayé différents e-mails, même @test.com fonctionne. Je ne peux pas vous garantir que ce sera également votre problème, mais vérifier les détails de l'erreur est certainement une bonne première étape !

Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal