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"; } } }