Mailchimp api 2.0 подписываться через php? - программирование
Подтвердить что ты не робот

Mailchimp api 2.0 подписываться через php?

Мне нужен пример того, как подписаться на адрес электронной почты для рассылки mailchimp.

Пожалуйста, проверьте новую ссылку api здесь: https://bitbucket.org/mailchimp/mailchimp-api-php

Это новый malichimp api, и я не уверен, как его использовать.: (

Для MailChimp 2.0 API, а не для 1.3.

Пожалуйста, кто-нибудь представит пример того, как подписываться на пользователя на mailchimp.

Спасибо.

Edit1: Уже пробовал следующий код, но не работал:

$merge_vars = array('MM1'=>$mm1);
$MailChimp = new Mailchimp($apikey);
$result = $MailChimp->call('lists/subscribe', array(
            'id'                => $listid,
            'email'             => array('email'=>$email),
            'merge_vars'        => $merge_vars,
            'double_optin'      => false,
            'update_existing'   => true,
            'replace_interests' => false,
            'send_welcome'      => false,
        ));
    print_r($result);

Но не работает. Бросание следующей ошибки: Неустранимая ошибка: вызов функции функции-члена() для не-объекта в subscribe.php в строке 22

4b9b3361

Ответ 1

Ссылаясь на документацию, это должно быть примерно так:

$merge_vars = array('MM1'=>$mm1);
$listid = 'YOURLISTID';
$MailChimp = new Mailchimp($apikey);
$result = $MailChimp->lists->subscribe($listid,
                                        array('email'=>"[email protected]"),
                                        $merge_vars,
                                        false,
                                        true,
                                        false,
                                        false
                                       );
    print_r($result);

Протестировано и работает.

Ответ 3

Вот пример с Try and Catch (пример для дублированных писем)

header('Content-Type: application/json');
include_once 'Mailchimp.php';

$api_key = '';
$list_id = '';


$email = '[email protected]';
$merge_vars = array();

$Mailchimp = new Mailchimp($api_key);
$Mailchimp_Lists = new Mailchimp_Lists($Mailchimp);

try{
    $subscriber = $Mailchimp_Lists->subscribe(
        $list_id,
        array('email'=>htmlentities($email)),
        $merge_vars,
        false,
        false,
        false,
        false
    );
    echo json_encode(array('status' => !empty($subscriber['leid'])?'submitted':'error'));
} catch(Mailchimp_Error $e){
    echo json_encode(array(
            'status' => 'error',
            'message' => $e->getMessage()
        ));
}

Подробнее о subscribe(): https://apidocs.mailchimp.com/api/2.0/lists/subscribe.php

Ответ 4

Подписаться через php с помощью curl.

$apikey     = 'xxxxxxxxxx'; //your apikey
$listId     = 'xxxxxxxxxx';  // your list id
$endpoint   = "http://yourdatacenter.api.mailchimp.com/3.0/lists/";      // find your datacenter in your apikey( xxxxxxxxxxxxxxxxxxxxxxxx-us13 <= this is your datacenter)
$auth       = base64_encode( 'user:'. $apikey );
$data       = array(
                    'apikey'        => $apikey,
                    'email_address' => 'yourvalid_email_address',
                    'status'        => 'subscribed',
                    'merge_fields'  => array());

$json_data = json_encode($data);
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $endpoint.$listId.'/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);

echo "<pre>";  // Response form mailchimp
print_r(json_decode($result,true));