api_key = $key;
$this->list_id = $list_id;
}
function getConnection($POST, $link)
{
// Устанавливаем соединение
$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, $link);
return curl_exec($ch);
}
public function getCampaignStatus($campaign_id)
{
// Создаём POST-запрос
$POST = array (
'api_key' => $this->api_key,
'campaign_id' => $campaign_id
);
$result = $this->getConnection($POST, 'http://api.unisender.com/ru/api/getCampaignStatus?format=json');
sleep(5);
if ($result) {
// Раскодируем ответ API-сервера
$jsonObj = json_decode($result);
return $jsonObj->result->status;
}
}
function SendMail($to, $nameto, $from, $namefrom, $title, $mailMessage, $files='') {
// Создаём POST-запрос
$POST = array (
'api_key' => $this->api_key,
'email' => $to,
'sender_name' => $namefrom,
'sender_email' => $from,
'subject' => $title,
'body' => $mailMessage,
'list_id' => $this->list_id
);
$result = $this->getConnection($POST, 'http://api.unisender.com/ru/api/sendEmail?format=json');
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 "Email message is sent. Message id " . $jsonObj->result->email_id;
}
} else {
// Ошибка соединения с API-сервером
echo "API access error";
}
}
function CreateMessage($from, $namefrom, $title, $mailMessage)
{
$POST = array (
'api_key' => $this->api_key,
'sender_name' => $namefrom,
'sender_email' => $from,
'subject' => $title,
'body' => $mailMessage,
'list_id' => $this->list_id
);
$result = $this->getConnection($POST, 'http://api.unisender.com/ru/api/createEmailMessage?format=json');
sleep(5);
if ($result) {
// Раскодируем ответ API-сервера
$jsonObj = json_decode($result);
return $jsonObj->result->message_id;
}
}
public function createCampaignDelivery($to = null, $from, $namefrom, $title, $mailMessage)
{
$email_stats_links = "1";
$email_stats_read = "1";
$defer = '1';
// Создаём POST-запрос
$POST = array (
'api_key' => $this->api_key,
'message_id' => $this->CreateMessage($from, $namefrom, $title, $mailMessage),
'track_read' => $email_stats_read,
'track_links' => $email_stats_links,
'contacts' => $to,
'defer' => $defer
);
$result = $this->getConnection($POST, 'http://api.unisender.com/ru/api/createCampaign?format=json');
sleep(5);
$jsonObj = json_decode($result);
print_r($result);
return $jsonObj->result->campaign_id;
}
public function getCampaignDeliveryStats($id)
{
$POST = array (
'api_key' => $this->api_key,
'campaign_id' => $id,
);
$result = $this->getConnection($POST, 'http://api.unisender.com/ru/api/getCampaignDeliveryStats?format=json');
sleep(5);
return json_decode($result);
}
public function getCampaignAggregateStats($id)
{
$POST = array (
'api_key' => $this->api_key,
'campaign_id' => $id,
);
$result = $this->getConnection($POST, 'http://api.unisender.com/ru/api/getCampaignAggregateStats?format=json');
return json_decode($result);
}
public function getVisitedLinks($id)
{
$POST = array (
'api_key' => $this->api_key,
'campaign_id' => $id,
);
$result = $this->getConnection($POST, 'http://api.unisender.com/ru/api/getVisitedLinks?format=json');
sleep(5);
return json_decode($result);
}
public function getCampaigns()
{
$api_key = '5xaiqb1pnuu8jsun4rwxhow4shj11e55zdhjf5do';
// Создаём GET-запрос
$api_url = "http://api.unisender.com/ru/api/getCampaigns?format=json&api_key=$api_key";
// Делаем запрос на 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 "Here's a list of your campaigns:
";
foreach ($jsonObj->result as $one) {
echo "Campaign #" . $one->id . " (" . $one->status . ")". "
";
}
}
} else {
// Ошибка соединения с API-сервером
echo "API access error";
}
}
public function addUsers(){
// Ваш ключ доступа к API (из Личного Кабинета)
$api_key = $this->api_key;
// Новые подписчики
$new_emails = array ('baurens@bigmir.net', 'icemate.job@gmail.com', 'dockdep@gmail.com');
$new_names = array ('Аня', 'Женя', 'Лев');
$new_status = array ('active', 'active', 'active');
// Список, куда их добавить
$list = '4940006';
// Создаём POST-запрос
$POST = array (
'api_key' => $api_key,
'field_names[0]' => 'email',
'field_names[1]' => 'Name',
'field_names[2]' => 'email_list_ids',
'field_names[3]' => 'email_status',
'field_names[4]' => 'Firstname',
'field_names[5]' => 'item_0',
);
for ($i=0;$i<3;$i++){
$POST['data[' . $i .'][0]'] = $new_emails[$i];
$POST['data[' . $i .'][1]'] = $new_names[$i];
$POST['data[' . $i .'][2]'] = $list;
$POST['data[' . $i .'][3]'] = $new_status[$i];
$POST['data[' . $i .'][4]'] = $new_status[$i];
$POST['data[' . $i .'][5]'] = 'wait time';
}
// Устанавливаем соединение
$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,
'http://api.unisender.com/ru/api/importContacts?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 "Success! Added " . $jsonObj->result->new_emails . " new e-mail addresses";
}
} else {
// Ошибка соединения с API-сервером
echo "API access error";
}
}
public function updateNewField(){
// Ваш ключ доступа к API (из Личного Кабинета)
$api_key = $this->api_key;
// Параметры изменяемого поля
// Если скрипт в кодировке UTF-8, то удалите вызов iconv
$field_name = iconv('cp1251', 'utf-8',"Обновление поля подстановки");
$field_type = "string";
$field_id = "234234";
// Создаём POST-запрос
$POST = array (
'api_key' => $api_key,
'name' => $field_name,
'type' => $field_type,
'id' => $field_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,
'http://api.unisender.com/ru/api/updateField?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 "Field is updated, Field ID is " . $jsonObj->result->id;
}
} else {
// Ошибка соединения с API-сервером
echo "API access error";
}
}
public function createNewField(){
// Ваш ключ доступа к API (из Личного Кабинета)
$api_key = $this->api_key;
$new_field_name = "item_5_url";
$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,
'http://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";
}
}
public function deleteUsers(){
// Ваш ключ доступа к API (из Личного Кабинета)
$api_key = $this->api_key;
// Новые подписчики
$new_emails = array ('baurens@bigmir.net', 'icemate.job@gmail.com', 'dockdep@gmail.com');
$new_names = array ('Аня', 'Женя', 'Лев');
$new_status = array ('active', 'active', 'active');
// Список, куда их добавить
$list = '4940006';
// Создаём POST-запрос
$POST = array (
'api_key' => $api_key,
'field_names[0]' => 'email',
'field_names[1]' => 'Name',
'field_names[2]' => 'delete',
'field_names[3]' => 'email_list_ids',
'field_names[4]' => 'email_status'
);
for ($i=0;$i<3;$i++){
$POST['data[' . $i .'][0]'] = $new_emails[$i];
$POST['data[' . $i .'][1]'] = $new_names[$i];
$POST['data[' . $i .'][2]'] = 1;
$POST['data[' . $i .'][3]'] = $list;
$POST['data[' . $i .'][4]'] = $new_status[$i];
}
// Устанавливаем соединение
$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,
'http://api.unisender.com/ru/api/importContacts?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 "Success! Added " . $jsonObj->result->new_emails . " new e-mail addresses";
}
} else {
// Ошибка соединения с API-сервером
echo "API access error";
}
}
}