Мне нужно добавить подписчиков в мой список Mailchimp без отправки письма-подтверждения с использованием API.
Я пробовал два способа.
1 - публикация
$postData = array(
"email_address" => "email_address@gmail.com",
"status" => "subscribed",
"merge_fields" => array(
"FNAME"=> "FNAME",
"LNAME"=> "LNAME"
)
);
$ch = curl_init('https://us20.api.mailchimp.com/3.0/lists/'.$list_id.'/members/');
curl_setopt_array($ch, array(
CURLOPT_POST => TRUE,
CURLOPT_RETURNTRANSFER => TRUE,
CURLOPT_HTTPHEADER => array(
'Authorization: apikey '.$authToken,
'Content-Type: application/json'
),
CURLOPT_POSTFIELDS => json_encode($postData)
));
$response = curl_exec($ch);
Этот метод отправляет подтверждение по электронной почте. поэтому я попытался изменить статус с помощью пут. 2
<?php
$email = 'email@gmail.com';
$fname = 'fname';
$lname = 'lname';
if(!empty($email) && !filter_var($email, FILTER_VALIDATE_EMAIL) === false){
$memberID = md5(strtolower($email));
$dataCenter = substr($apiKey,strpos($apiKey,'-')+1);
$url = 'https://' . $dataCenter . '.api.mailchimp.com/3.0/lists/' . $listID . '/members/' . $memberID;
$json = json_encode([
'email_address' => $email,
'status' => 'subscribed',
'merge_fields' => [
'FNAME' => $fname,
'LNAME' => $lname
]
]);
$ch = curl_init($url);
curl_setopt($ch, CURLOPT_USERPWD, 'user:' . $apiKey);
curl_setopt($ch, CURLOPT_HTTPHEADER, ['Content-Type: application/json']);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_TIMEOUT, 10);
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, 'PUT');
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($ch, CURLOPT_POSTFIELDS, $json);
$result = curl_exec($ch);
$httpCode = curl_getinfo($ch, CURLINFO_HTTP_CODE);
curl_close($ch);
if ($httpCode == 200) {
echo'<p style="color: #34A853">You have successfully subscribed to CodexWorld.</p>';
} else {
switch ($httpCode) {
case 214:
echo 'You are already subscribed.';
break;
default:
echo 'Some problem occurred, please try again.';
break;
}
echo '<p style="color: #EA4335">'.$msg.'</p>';
}
}else{
echo '<p style="color: #EA4335">Please enter valid email address.</p>';
}
Но, когда я проверяю свою учетную запись mailchimp, контакты не увеличиваются. Любая помощь будет оценена.