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
)