Метод createField

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

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

Синтаксис и URL для вызова метода
createField (string name, string type)
https://api.unisender.com/ru/api/createField?format=json&api_key=KEY&name=NAME&type=TYPE
Аргументы
api_key * Ключ доступа к API
name * Переменная для подстановки. Должно быть уникальным с учётом регистра. Также не рекомендуется создавать поле с именем, совпадающим с одним из имён стандартных полей (tags, email, phone, email_status, phone_status и пр.) — будет некорректно работать метод importContacts.

Допустимые символы: буквы латинского алфавита, цифры, «_» и «-«. Первым символом может быть только буква. Использование пробелов не допускается.

type * Тип поля. Возможные варианты:

  • string — строка;
  • text — одна или несколько строк;
  • number — целое число или число с десятичной точкой;
  • date — дата (поддерживается формат ДД.ММ.ГГГГ, ДД-ММ-ГГГГ, ГГГГ.ММ.ДД, ГГГГ-ММ-ДД);
  • bool — 1/0, да/нет.

Тип поля имеет значение только для веб-интерфейса, элементы управления подстраиваются под возможные значения. Хранятся значения разных типов одинаково, в виде текста.

public_name Название поля. Если не использовать, то будет проведена автоматическая генерация по полю «name».
Возвращаемое значение
Объект с полем id, содержащим кодом созданного поля.

Пример возвращаемого значения:

{"result":{"id":1092208}}

Примеры на PHP

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

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

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

// Параметры создания нового поля
// Если скрипт в кодировке UTF-8, то удалите вызов iconv
$new_field_name = iconv('cp1251', 'utf-8',"Новое поле подстановки");
$new_field_type = "string";

// Создаём POST-запрос
$POST = array (
  'api_key' => $api_key,
  'name' => $new_field_name,
  'type' => $new_field_type
);

// Устанавливаем соединение
$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/createField?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 "New field is creaded, Field ID is " . $jsonObj->result->id;

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

}

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

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

// Параметры создания нового поля
// Если скрипт в кодировке UTF-8, то удалите вызов iconv
$new_field_name = urlencode(iconv('cp1251', 'utf-8',"Новое поле подстановки"));
$new_field_type = "string";

// Создаём GET-запрос
$api_url = "https://api.unisender.com/ru/api/createField?format=json".
           "&api_key=$api_key&name=$new_field_name&type=$new_field_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 "New field is creaded, Field ID is " . $jsonObj->result->id;
  }

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