Maison  >  Questions et réponses  >  le corps du texte

Mailchimp addListMember signale l'erreur client 400 Bad Request alors qu'elle existe déjà

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粉794851975P粉794851975261 Il y a quelques jours449

répondre à tous(1)je répondrai

  • P粉797855790

    P粉7978557902024-02-26 00:09:15

    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 !

    répondre
    0
  • Annulerrépondre