API для звичайних розсилок
Для того, щоб використовувати API, необхідно завантажити бібліотеку SendExpert API здесь.
Усі дані передаються в кодуванні UTF8. Повернуте значення у вигляді асоціативного масиву закодованого у вигляді JSON:
{"error":"","result":[...]}.
У разі помилки в параметрі «error» передається символьний код помилки. У разі успіху цей параметр буде порожній.
Результат передається в параметрі «result» залежно від викликаної функції.
Приклад використання SendExpert API
# підключаємо бібліотеку
require_once 'SendExpertAPI.php';
# ID користувача
$user_id = '1';
# Секретний ключ, який відображається в особистому кабінеті
$user_private_key = 'e10adc3xxxxxbe56e057f20f883e';
# створюємо об'єкт API вказавши в конструкторі ключі
$api = new cSendExpertAPI($user_id, $user_private_key);
echo "Отримати звіт SMS-розсилки";
$res = $api->getSMSReport($project_ID = 96, $ID = 83);
if ($res['error'] == ""){
print_r($res['result']);
} else {
echo "Помилка: ".$res['error'];
}
Отримати список проектів поточного користувача
Виклик
getProjects
Вхідні параметри
Результат повернення
Список проєктів поточного користувача:
name |
назва проекту |
ID |
ID проекту |
Приклад відповіді
Array
(
[0] => Array
(
[name] => ProjectName1
[ID] => 1
)
[1] => Array
(
[name] => ProjectName2
[ID] => 52
)
}
Отримати список полів бази для проекту
Виклик
getProjectsStructure
Вхідні параметри
project_id |
ID проекту, для якого необхідно отримати список полів |
Результат повернення
Список полів бази для проєкту:
name |
назва поля |
ID |
ID поля |
type |
тип поля |
Приклад відповіді
Array
(
[0] => Array
(
[name] => Електронна адреса
[ID] => 1
[type] => email
)
[1] => Array
(
[name] => Ім'я
[ID] => 2
[type] => text
)
}
Отримати всіх підписників (експорт)
Виклик
getSubscribers
Вхідні параметри
project_id |
ID проекту, в якому необхідно отримати список підписників |
Результат повернення
Список підписників:
ID |
ID підписника |
1 |
значення поля з кодом "1" |
... |
... |
х |
значення поля з кодом "х" |
GROUPS |
список груп, до яких підключений цей користувач |
DATE |
дата додавання підписника |
UNSUBSCRIBED |
прапор відписки передплатника від розсилок |
DISABLE |
відключений чи ні підписник |
ACTIVATED |
підтвердження та активація підписника адміністрацією |
Приклад відповіді
Array
(
[0] => Array
(
[ID] => 23
[1] => [email protected]
[2] => Лілія
[GROUPS] => Array
(
[0] => Array
(
[ID] => 31
[name] => ProjectName1
)
)
[DATE] => 1412936959
[UNSUBSCRIBED] => 0
[DISABLE] => 0
[ACTIVATED] => 1
)
[1] => Array
(
[ID] => 34
[1] => [email protected]
[2] => Анна
[GROUPS] => Array
(
[0] => Array
(
[ID] => 31
[name] => ProjectName1
)
)
[DATE] => 1412937514
[UNSUBSCRIBED] => 0
[DISABLE] => 0
[ACTIVATED] => 1
)
)
Отримати список користувачів за телефоном або за його частиною
Виклик
getSubscribersByPhone
Вхідні параметри
project_id |
ID проєкту, для якого необхідно отримати список підписників |
phone |
повний номер телефону підписника або його частину |
Наприклад
$phone = '38(067)';
Результат повернення
Список користувачів:
ID |
ID підписника |
1 |
значення поля з кодом "1" |
... |
... |
х |
значення поля з кодом "х" |
GROUPS |
список груп, до яких підключений цей користувач |
DATE |
дата додавання підписника |
UNSUBSCRIBED |
прапор відписки підписника від розсилок |
DISABLE |
відключений чи ні підписник |
ACTIVATED |
підтвердження та активація підписника адміністрацією |
Приклад відповіді
Array
(
[0] => Array
(
[ID] => 1
[1] => [email protected]
[2] => Євген
[GROUPS] => Array
(
[0] => Array
(
[ID] => 31
[name] => ProjectName1
)
)
[DATE] => 1412937697
[UNSUBSCRIBED] => 0
[DISABLE] => 0
[ACTIVATED] => 1
)
[1] => Array
(
[ID] => 12
[1] => [email protected]
[2] => Ольга
[GROUPS] => Array
(
[0] => Array
(
[ID] => 31
[name] => ProjectName1
)
)
[DATE] => 1412937023
[UNSUBSCRIBED] => 0
[DISABLE] => 0
[ACTIVATED] => 1
)
}
Отримати список користувачів за email або за його частиною
Виклик
getSubscribersByEmail
Вхідні параметри
project_id |
ID проекту, для якого необхідно отримати список передплатників |
email |
адреса електронної пошти підписника або її частина |
Наприклад
$email = '@gmail.com';
Результат повернення
Список користувачів:
ID |
ID підписника |
1 |
значення поля з кодом "1" |
... |
... |
х |
значення поля з кодом "х" |
GROUPS |
список груп, до яких підключений цей користувач |
DATE |
дата додавання підписника |
UNSUBSCRIBED |
прапор відписки підписника від розсилок |
DISABLE |
відключений чи ні підписник |
ACTIVATED |
підтвердження та активація підписника адміністрацією |
Приклад відповіді
Array
(
[0] => Array
(
[ID] => 23
[1] => [email protected]
[2] => Василь
[GROUPS] => Array
(
[0] => Array
(
[ID] => 31
[name] => ProjectName1
)
)
[DATE] => 1412936959
[UNSUBSCRIBED] => 0
[DISABLE] => 0
[ACTIVATED] => 1
)
[1] => Array
(
[ID] => 34
[1] => [email protected]
[2] => Іван
[GROUPS] => Array
(
[0] => Array
(
[ID] => 31
[name] => ProjectName1
)
)
[DATE] => 1412937514
[UNSUBSCRIBED] => 0
[DISABLE] => 0
[ACTIVATED] => 1
)
}
Додати підписника
Виклик
addSubscriber
Вхідні параметри
project_id |
ID проєкту, до якого необхідно додати підписника |
subscriber |
масив із даними підписника зі структурою [ID поля] => [Значення] |
subscriber ["GROUPS"] |
список груп, до яких необхідно підключити підписника |
responder |
ID автовідповідача або масив з автовідповідачами для API або параметр "ALL". Якщо вказано ID автовідповідачів, тоді їх буде запущено в разі успішного додавання користувача. Якщо вказано параметр ALL - будуть запущені всі автовідповідачі для API для доданого користувача |
Наприклад
$subscriber = array();
$subscriber[100] = '[email protected]';
$subscriber[500] = 'Тарас';
$subscriber["groups"] = array('31','54');
$responder = array(123,124);
Результат повернення
Масив:
id |
ID підписника |
1 |
значення поля з кодом "1" |
... |
... |
х |
значення поля з кодом "х" |
groups |
список груп, до яких підключений цей користувач |
date |
дата додавання підписника |
unsubscribed |
прапор відписки підписника від розсилок |
disable |
відключений чи ні підписник |
activated |
підтвердження та активація підписника адміністрацією |
Приклад відповіді
Array
(
[0] => Array
(
[ID] => 23
[1] => [email protected]
[2] => Василь
[GROUPS] => Array
(
[0] => Array
(
[ID] => 31
[name] => ProjectName1
)
)
[DATE] => 1412936959
[UNSUBSCRIBED] => 0
[DISABLE] => 0
[ACTIVATED] => 1
)
[1] => Array
(
[ID] => 34
[1] => [email protected]
[2] => Іван
[GROUPS] => Array
(
[0] => Array
(
[ID] => 31
[name] => ProjectName1
)
)
[DATE] => 1412937514
[UNSUBSCRIBED] => 0
[DISABLE] => 0
[ACTIVATED] => 1
)
}
Редагувати підписника
Виклик
editSubscriber
Вхідні параметри
project_id |
ID проекту, в якому необхідно відредагувати підписника |
ID |
ID підписника |
subscriber |
масив із даними підписника зі структурою [ID поля] => [Значення] |
subscriber ["groups"] |
список груп, до яких необхідно підключити підписника |
Наприклад
$subscriber = array();
$subscriber[2] = 'Тарас1';
$subscriber["GROUPS"] = array();
Результат
“OK” у разі успішної зміни даних
Видалити підписника
Виклик
deleteSubscriber
Вхідні параметри
project_id |
ID проекту, з якого необхідно видалити підписника |
ID |
ID підписника |
Результат
“OK” у разі успішної зміни даних
Отримати зворотні адреси електронної пошти
Виклик
getSenderEmails
Вхідні параметри
project_id |
ID проекту, в якому необхідно отримати список зворотних адрес електронної пошти |
Результат повернення
Масив елементів:
email |
email адреса зворотньої електронної пошти |
ID |
ID адреса зворотньої електронної пошти |
checked |
прапор активності перевірки адреси зворотньої електронної пошти |
Приклад відповіді
Array
(
[0] => Array
(
[email] => [email protected]
[ID] => 6
[checked] => 1
)
[1] => Array
(
[email] => [email protected]
[ID] => 23
[checked] => 1
)
)
Отримати список груп
Виклик
getGroupsList
Вхідні параметри
project_id |
ID проекту, в якому необхідно отримати список альфа-імен |
filter
необов'язковий
|
повна або часткова маска для пошуку в назві групи |
Результат повернення
Список груп:
name |
назва групи |
ID |
ID групи |
Приклад відповіді
Array
(
[0] => Array
(
[name] => Група 1
[ID] => 100
)
[1] => Array
(
[name] => Група 2
[ID] => 500
)
)
Додати групу
Виклик
addGroup
Вхідні параметри
project_id |
ID проєкту, в якому необхідно створити групу |
name |
назва групи |
Результат повернення
У разі успішного результату:
Список можливих помилок:
ERROR_NAME |
назва містить заборонені символи |
ERROR_ALREADY_EXIST |
група з даним ім'ям уже існує в системі |
Приклад відповіді
Array
(
[ID] => 100
)
Отримати список Альфа-імен для SMS
Виклик
getAlphaNames
Вхідні параметри
project_id |
ID проекту, в якому необхідно отримати список альфа-імен |
Результат повернення
Список Альфа-імен:
name |
альфа-ім'я |
ID |
ID альфа-імені |
checked |
прапор активності альфа-імені |
Приклад відповіді
Array
(
[0] => Array
(
[name] => SENDEXPERT
[ID] => 29
[checked] => 1
)
)
Надіслати SMS-повідомлення підписникам
Виклик
sendSMS
Вхідні параметри
project_id |
ID проекту, в якому необхідно надіслати SMS-повідомлення |
alphaname_id |
ID альфа-імені, яке буде використовуватися як відправник |
subscribers |
список ID користувачів, яким необхідно надіслати SMS |
message |
повідомлення, яке необхідно надіслати (підтримується персоналізація) |
date |
дата відправлення SMS-повідомлення у форматі UNIXTIME |
Наприклад
$subscribers = array();
$subscribers[] = 337361;
$subscribers[] = 43235;
$message = "Привіт {{Ім'я}}! Це тест API!";
$date = mktime();
$res = $api->sendSMS($project_ID = 96, $alphaname_id = 29, $subscribers, $message, $date);
Результат повернення
Масив:
Приклад відповіді
Array
(
[ID] => 84
)
Отримати список SMS-розсилок
Виклик
getSMSList
Вхідні параметри
project_id |
ID проекту, в якому необхідно отримати список SMS-розсилок |
time_start |
дата і час початку звіту у форматі UNIXTIME |
time_end |
дата і час закінчення звіту у форматі UNIXTIME |
Наприклад
$time_start = strtotime("-2 days");
$time_end = time();
$res = $api->getSMSList($project_ID = 96, $time_start, $time_end);
Результат повернення
Список SMS-розсилок у форматі:
id |
ID розсилки |
alphanameID |
ID Альфа-імені від якого надіслано розсилку |
body |
зміст розсилки |
time_start |
дата і час старту розсилки у форматі UNIXTIME |
type |
статус розсилки |
date_create |
дата створення розсилки у форматі UNIXTIME |
price |
вартість розсилки в у.е. |
Приклад відповіді
Array
(
[0] => Array
(
[ID] => 84
[alphanameID] => 29
[body] => SMS працює!
[time_start] => 1437135207
[type] => in_proccess
[date_create] => 2015-07-17 12:13:28
[price] => 0.023399
)
[1] => Array
(
[ID] => 83
[alphanameID] => 29
[body] => Привіт {{Ім'я}}! Це тест API!
[time_start] => 1436799595
[type] => sended
[date_create] => 2015-07-13 15:00:23
[price] => 0.023399
)
)
Отримати звіт SMS-розсилки
Виклик
getSMSReport
Вхідні параметри
project_id |
ID проекту, в якому необхідно отримати список SMS-розсилок |
ID |
ID SMS-розсилки |
Результат повернення
Список SMS-розсилок у форматі:
total |
кількість підписників, яким буде надіслано повідомлення |
sended |
кількість підписників, яким уже було надіслано повідомлення |
delivered |
кількість підписників, які отримали повідомлення |
not_delivered |
кількість підписників, які не отримали повідомлення |
not_exist |
кількість підписників, у яких неіснуючий номер телефону |
alphanameID |
ID Альфа-імені від якого надіслано розсилку |
body |
зміст розсилки |
time_start |
дата і час старту розсилки у форматі UNIXTIME |
type |
статус розсилки |
date_create |
дата створення розсилки |
price |
вартість розсилки в у.е. |
Приклад відповіді
Array
(
[total] => 1
[sended] => 1
[delivered] => 0
[not_delivered] => 0
[not_exist] => 0
[alphanameID] => 29
[body] => Привіт {{Ім'я}}! Це тест API!
[time_start] => 1436799595
[type] => sended
[date_create] => 2015-07-13 15:00:23
[price] => 0.023399
)
Отримати список email-розсилок
Виклик
getMailList
Вхідні параметри
project_id |
ID проекту, в якому необхідно отримати список email-розсилок |
time_start |
дата і час початку звіту у форматі UNIXTIME |
time_end |
дата і час закінчення звіту у форматі UNIXTIME |
Наприклад
$time_start = strtotime("-2 days");
$time_end = time();
$res = $api->getMailList($project_ID = 96, $time_start, $time_end);
Результат повернення
Список email-розсилок у форматі:
ID |
ID email-розсилки |
fromID |
ID зворотної адреси електронної пошти |
sender_name |
ім'я відправника |
subject |
тема листа (підтримує персоналізацію) |
body |
вміст листа (підтримує персоналізацію) |
alternate_body |
альтернативний текст листа без тегів, для text-plain відображення |
images_place |
місце зберігання малюнків |
time_start |
дата і час старту розсилки у форматі UNIXTIME |
type |
статус розсилки |
date_create |
дата створення розсилки |
Приклад відповіді
Array
(
[0] => Array
(
[ID] => 827
[fromID] => 160
[sender_name] => Ім'яВідправника
[subject] => Тема листа для {{Ім'я}}!
[body] => Привіт {{Ім'я}}! Це тест API!
[alternate_body] => Привіт {{Ім'я}}! Це тест API!
[images_place] => server
[time_start] => 1436883244
[type] => sended
[date_create] => 2015-07-14 14:14:29
)
[1] => Array
(
[ID] => 826
[fromID] => 160
[sender_name] => Апі
[subject] => Тема листа!
[body] => Тест працює. Ура!
[alternate_body] => Тест працює. Ура!
[images_place] => server
[time_start] => 1436883216
[type] => sended
[date_create] => 2015-07-14 14:14:28
)
)
Отримати звіт email-розсилки
Виклик
getMailReport
Вхідні параметри
project_id |
ID проекту, в якому необхідно отримати список email-розсилок |
ID |
ID email-розсилки |
Результат повернення
Список email-розсилок у форматі:
total |
загальна кількість листів |
sended |
кількість надісланих email-листів |
delivered |
кількість доставлених |
opened |
кількість відкритих листів |
with_moving |
кількість листів з переходами |
moved |
кількість переходів за посиланнями з листів |
not_delivered |
кількість недоставлених листів |
unsubscribed |
кількість підписників, які відписалися |
unsubscribed_as_spam |
кількість тих, хто поскаржився на СПАМ |
fromID |
ID зворотної адреси електронної пошти |
sender_name |
ім'я відправника |
subject |
тема листа (підтримує персоналізацію) |
body |
вміст листа (підтримує персоналізацію) |
alternate_body |
альтернативний текст листа без тегів, для text-plain відображення |
images_place |
місце зберігання малюнків |
time_start |
дата і час старту розсилки у форматі UNIXTIME |
type |
статус розсилки |
date_create |
дата створення розсилки |
Приклад відповіді
Array
(
[total] => 2
[sended] => 2
[delivered] => 2
[opened] => 1
[with_moving] => 0
[moved] => 0
[not_delivered] => 0
[unsubscribed] => 0
[unsubscribed_as_spam] => 0
[fromID] => 160
[sender_name] => Тест
[subject] => Привіт {{Ім'я}} - {{Номер телефона}} - {{Електронна адреса}}
[body] => Тіло листа
[alternate_body] =>
[images_place] => server
[time_start] => 1432044523
[type] => sended
[date_create] => 2015-05-19 14:13:17
}
Отримати список автовідповідачів для API
Виклик
getResponderList
Вхідні параметри
project_id |
ID проєкту, в якому необхідно отримати список автовідповідачів, призначених для API |
Результат повернення
Список email-розсилок у форматі:
ID |
ID автовідповідача |
mailID |
ID листа для автовідповідача |
time_type |
тип часового інтервалу для спрацьовування автовідповідача |
time_send |
Array
(
[days] — кількість днів до старту автовідповідача;
[time_hour] — кількість годин;
[time_minutes] — кількість хвилин.
)
|
Приклад відповіді
Array
(
[0] => Array
(
[ID] => 19
[mailID] => 819
[time_type] => timeleft
[time_send] => Array
(
[days] => 0
[time_hour] => 0
[time_minutes] => 5
)
)
)
Надіслати Email-повідомлення підписникам
Виклик
sendMail
Вхідні параметри
project_id |
ID проєкту, в якому необхідно отримати надіслати розсилку |
subscribers |
масив ID підписників, яким необхідно надіслати розсилку. Не більше 1000 підписників у списку. Якщо необхідно надіслати більшій кількості - необхідно використовувати фільтри або групи. Для того, щоб надіслати всім по базі - переданий параметр $subscribers = "ALL" ; |
subject |
тема email-розсилки (підтримує персоналізацію) |
message |
зміст розсилки (підтримує персоналізацію) |
sender_id |
ID адреси зворотної електронної адреси відправника |
sender_name |
ім'я відправника |
date |
час старту розсилки у форматі UNIXTIME |
filter_id |
якщо вказано: відправлення за ID фільтром у системі |
group_id |
якщо вказано: відправлення за ID групи в системі |
Наприклад
$subscribers = array();
$subscribers[] = 337361;
$subscribers[] = 438106;
$subject = "Тема листа для {{Ім'я}}!";
$message = "Привіт {{Ім'я}}! Це тест API!";
$sender_id = 160;
$sender_name = "Ім'я відправника";
$date = mktime();
$filter_id = 0;
$group_id = 0;
$res = $api->sendMail($project_ID = 96, $subscribers, $subject, $message, $sender_id, $sender_name, $date, $filter_id, $group_id);
Результат повернення
Масив:
ID |
ID створеної email-розсилки |
Приклад відповіді
Array
(
[ID] => 828
)