Mailchimp добавить подписчика в список используя api без подтверждения почты - PullRequest
0 голосов
/ 09 апреля 2020

Мне нужно добавить подписчиков в мой список 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, контакты не увеличиваются. Любая помощь будет оценена.

...