Generic selectors
Exact matches only
Search in title
Search in content
Search in posts
Search in pages

Метод getCampaignStatus

Узнать статус рассылки, созданной методом createCampaign.

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

Синтаксис и URL для вызова метода
getCampaignStatus (int campaign_id)
https://api.unisender.com/ru/api/getCampaignStatus?format=json&api_key=KEY&campaign_id=ID
Аргументы
api_key * Ключ доступа к API
campaign_id * Код рассылки, полученный методом createCampaign.
Возвращаемое значение
JSON-объект со следующими полями:
status Статус рассылки. Возможные варианты:

  • waits_censor — рассылка ожидает проверки
  • censor_hold — фактически эквивалентна waits_censor: рассмотрена администратором, но отложена для дальнейшей проверки
  • declined — рассылка отклонена администратором
  • waits_schedule — задание на постановку рассылки в очередь получено и рассылка ждёт постановки в очередь. Обычно рассылка в этом состоянии находится одну-две минуты перед тем, как перейти в состояние scheduled.
  • scheduled — рассылка запланирована к запуску. Как только настанет время отправки, она будет запущена.
  • in_progress — рассылка выполняется.
  • analysed — все сообщения отправлены, идёт анализ результатов.
  • completed — все сообщения отправлены и анализ результатов закончен.
  • stopped — рассылка поставлена «на паузу».
  • canceled — рассылка отменена (обычно из-за нехватки денег или по желанию пользователя).
creation_time Дата и время создания рассылки в формате «ГГГГ-ММ-ДД чч:мм:сс», в часовом поясе UTC.
start_time Дата и время запуска рассылки в формате «ГГГГ-ММ-ДД чч:мм:сс», в часовом поясе UTC.
Если были ошибки или предупреждения, они возвращаются в полях error/warnings в соответствии с описанием. Пример ответа:

{
  "result":{
  	"status":"completed",
  	"creation_time":"2011-09-21 19:47:31",
  	"start_time":"2011-09-21 20:00:00"
  	}
}

Примеры на PHP

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

Пример с использованием POST-запроса

// Ваш ключ доступа к API (из Личного Кабинета)
$api_key = "xxxxxxxxxxxxxxxxxxxxxxxxx";

// Код рассылки, статус которой надо узнать
$id = "123456";

// Создаём POST-запрос
$POST = array (
  'api_key' => $api_key,
  'campaign_id' => $id
);

// Устанавливаем соединение
$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/getCampaignStatus?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 "Текущий статус рассылки: " .$jsonObj->result->status;

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

Пример с использованием GET-запроса

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

// Код рассылки, статус которой надо узнать
$id = "123456";

// Создаём GET-запрос
$api_url = "https://api.unisender.com/ru/api/getCampaignStatus?format=json".
		"&api_key=$api_key&campaign_id=$id";

// Делаем запрос на 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 "Текущий статус рассылки: " .$jsonObj->result->status;
  }

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