Mailchimp addListMember報告客戶端錯誤400壞請求,當已存在時
P粉794851975
P粉794851975 2024-02-25 14:06:06
0
1
407

我正在使用 MailchimpMarketing\ApiClient() 編寫器資源為網站添加基本的 Mailchimp 訂閱表單。添加用戶似乎工作正常,但是當嘗試添加已經存在的用戶時,我期望只有一個很好的json 響應,以便我可以捕獲該錯誤並將其顯示給用戶,但我得到以下GuzzleHttp\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...)

文件似乎並沒有真正解釋太多,我也必須找到正確的方法來捕獲堆疊溢出的錯誤,因為 Mailchimps 文件......缺乏!這是程式碼:

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

這是我使用的mailchimp文件:https://mailchimp.com/developer/api/marketing/list-members/add-member-to-list/

我可以捕獲 400 錯誤代碼並輸出自訂錯誤,但我確信我一定做錯了什麼才能從 Mailchimp API 獲得如此無用的回應?

非常感謝,安迪,感謝所有幫助。

P粉794851975
P粉794851975

全部回覆(1)
P粉797855790

我遇到了相同的問題,因此我最終透過將最後一個 catch 子句更改為以下內容來指示錯誤訊息以查看整個錯誤:

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

這揭示了以下糟糕的錯誤,到目前為止該錯誤已被截斷:

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

所以,我的問題是 @example.com 看起來是假的或無效...

嘗試不同的電子郵件,甚至 @test.com 也有效。 我無法向您保證這也會是您的問題,但檢查錯誤詳細資訊絕對是良好的第一步!

熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板
關於我們 免責聲明 Sitemap
PHP中文網:公益線上PHP培訓,幫助PHP學習者快速成長!