如何将变量作为参数传递给 Mailchimp 函数?

How can I pass a variable into a Mailchimp function as a parameter?

我觉得这是一个非常基本的问题所以我提前道歉,我花了几个小时才决定问这个问题。

简而言之,我正在使用 MailChimp API 来 archive/delete 一个用户。

public function archiveClient(Request $request){

        $client_email = md5(strtolower($request->client_email));

        $mailchimp = new \MailchimpMarketing\ApiClient();
        $mailchimp->setConfig([
            'apiKey' => config('services.mailchimp.key'),
            'server' => 'us14'
        ]);

        $mailchimp->lists->deleteListMember("list_id", "<?php $client_email ?>");
        
    }

List_id 工作得很好,我在其他功能中使用它来添加订阅者。为了隐私,我把它改回了 list_id。然而,subscriber_hash 参数需要用户电子邮件的小写 MD5 散列,这就是问题所在。我尝试了各种方法,但仍然遇到同样的错误:

GuzzleHttp\Exception\ClientException

Client error: DELETE https://us14.api.mailchimp.com/3.0/lists/list_id/members/%3C%3Fphp%20d076a26e78f7e9935a3af1a8f5124b98%20%3F%3E resulted in a 404 Not Found response: {"type":"https://mailchimp.com/developer/marketing/docs/errors/","title":"Resource Not Found","status":404,"detail":"The (truncated...)

目标电子邮件地址在 Mailchimp 上,并作为 $request->client_email 中的字符串正确通过,问题出在哈希上。任何帮助,将不胜感激!谢谢!

Paul T 和 Greg Schmidt 的上述建议是正确的!

参数应设置为 ("list_id", $client_email)

此修复后,我收到了一个 405 错误,该错误已被截断。因此,我使用以下内容来查找准确的错误:

try {
            $mailchimp->lists->deleteListMember("list_id", $client_email);
        } catch (\GuzzleHttp\Exception\RequestException $ex) {
            return $ex->getResponse()->getBody()->getContents();
        }

原因是我使用了 'cleaned' 的联系人。在对 'subscribed' 成员进行测试后,它工作得很好。