Метод unsubscribe

Метод отписывает e-mail или телефон подписчика от одного или нескольких списков. В отличие от метода exclude, он не исключает при этом контакт из списков, а помечает контакт как «отписавшийся». Вернуть статус на «активный» через API нельзя – это может сделать только сам подписчик, перейдя по ссылке активации из письма.

Мы рекомендуем использовать метод unsubscribe в случае, когда сам подписчик отказывается от подписки, и метод exclude в случае, когда управление подпиской/отпиской выполняется по инициативе отправителя.

Принцип использования

Синтаксис и URL для вызова метода
unsubscribe (string contact_type, string contact [, string list_ids])

https://api.unisender.com/ru/api/unsubscribe?format=json&api_key=KEY&contact=test@example.org&contact_type=

TYPE&list_ids=134,135

Аргументы
api_key * Ключ доступа к API
contact_type * Тип отписываемого контакта - либо 'email', либо 'phone'.

Примеры:

contact_type=email
contact_type=phone
contact * E-mail или телефон, который надо отписать от рассылок.

Примеры:

contact=test@example.org
contact=89091234567
list_ids Перечисленные через запятую коды списков, от которых мы отписываем подписчика. Если не указаны, то отписываем от всех списков. Коды списков можно узнать с помощью метода getLists. Они совпадают с кодами, используемыми в форме подписки.

Примеры:

list_ids=662572
list_ids=112233,887789,6665576

Возвращаемое значение
Пустой объект в случае успеха. Если возникнут ошибки или предупреждения, они будут возвращены стандартным способом.
При попытке отписать адрес от списка, в котором адрес отсутствует, будет возвращена ошибка - 
{
  "error":"Contact \"no_such@address.com\" not found",
  "code":"unspecified",
  "result":""
}

Примеры на PHP

Мы настоятельно рекомендуем использовать POST-запросы, так как это более безопасный метод передачи данных, нежели GET. Используйте SSL-соединение с UniSender. Подробнее о методах соединения здесь.

Пример с использованием POST-запроса
// Ваш ключ доступа к API (из Личного Кабинета)
$api_key = "xxxxxxxxxxxxx";

// Данные о подписчике, которого надо отписать от списков
$user_email = "address_to_unsubscribe@aol.com";
$user_lists = "354168";
$user_type = "email";

// Создаём POST-запрос
$POST = array (
  'api_key' => $api_key,
  'list_ids' => $user_lists,
  'contact_type' => $user_type,
  'contact' => $user_email
);

// Устанавливаем соединение
$ch = curl_init();
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $POST);
curl_setopt($ch, CURLOPT_TIMEOUT, 10);
curl_setopt($ch, CURLOPT_URL, 
            'https://api.unisender.com/ru/api/unsubscribe?format=json');
$result = curl_exec($ch);

if ($result) {
  // Раскодируем ответ API-сервера
  $jsonObj = json_decode($result);

  if(null===$jsonObj) {
    // Ошибка в полученном ответе
    echo "Invalid JSON";

  }
  elseif(!empty($jsonObj->error)) {
    // Ошибка отписки подписчика
    echo "An error occured: " . $jsonObj->error . "(code: " . $jsonObj->code . ")";

  } else {
    // Адресат успешно отписан
    echo "Unsubscribed";

  }
} else {
  // Ошибка соединения с API-сервером
  echo "API access error";
}

Пример с использованием GET-запроса
// Ваш ключ доступа к API (из Личного Кабинета)
$api_key = "xxxxxxxxxxxxxxxx";

// Данные о подписчике, которого надо отписать от списков
$user_email = "address_to_unsubscribe@aol.com";
$user_lists = "354168";
$user_type = "email";

// Создаём GET-запрос
$api_url = "https://api.unisender.com/ru/api/unsubscribe?format=json".
           "&api_key=$api_key&list_ids=$user_lists".
           "&contact=$user_email&contact_type=$user_type";

// Делаем запрос на API-сервер
$result = file_get_contents($api_url);

if ($result) {
  // Раскодируем ответ API-сервера
  $jsonObj = json_decode($result);

  if(null===$jsonObj) {
    // Ошибка в полученном ответе
    echo "Invalid JSON";

  }
  elseif(!empty($jsonObj->error)) {
    // Ошибка отписки подписчика
    echo "An error occured: " . $jsonObj->error . "(code: " . $jsonObj->code . ")";

  } else {
    // Адресат успешно отписан
    echo "Unsubscribed";

  }

} else {
  // Ошибка соединения с API-сервером
  echo "API access error";
}