Mam poniższy kod, który dodaje użytkownika do wcześniej istniejącej listy w Mailchimp.Aktualizowanie subskrybentów na liście przy użyciu cURL i Mailchimp API v3
$apikey = '<api_key>';
$auth = base64_encode('user:'.$apikey);
$data = array(
'apikey' => $apikey,
'email_address' => $email,
'status' => 'subscribed',
'merge_fields' => array(
'FNAME' => $name
)
);
$json_data = json_encode($data);
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, 'https://us2.api.mailchimp.com/3.0/lists/<list_id>/members/');
curl_setopt($ch, CURLOPT_HTTPHEADER, array('Content-Type: application/json',
'Authorization: Basic '.$auth));
curl_setopt($ch, CURLOPT_USERAGENT, 'PHP-MCAPI/2.0');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_TIMEOUT, 10);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($ch, CURLOPT_POSTFIELDS, $json_data);
$result = curl_exec($ch);
var_dump($result);
die('Mailchimp executed');
Ten kod dodaje tylko użytkownikom z listy i gdy próbuję dodać szczegóły tego samego użytkownika dwukrotnie rzuca następujący błąd przy drugiej próbie:
[email protected] is already a list member. Use PATCH to update existing members.
Jak mogę iść o używaniu PATCH, aby zaktualizować dane użytkownika? Nie jestem pewien, gdzie to określić.
Należy zauważyć, że "identyfikator subskrybenta" jest tak naprawdę hash MD5 ich adres e-mail. – TooMuchPete
Dobrze wiedzieć. Dzięki. – VenomRush
Dla każdego, kto szuka sposobu aktualizacji wiadomości e-mail istniejącego subskrybenta - nie możesz tego zrobić (musisz usunąć stary e-mail, a następnie dodać nowy jako nowego subskrybenta). Nie można zmienić informacji oznaczonych jako "tylko do odczytu" w schemacie tutaj: https://us9.api.mailchimp.com/schema/3.0/Lists/Members/Instance.json –