Методы HTTP API
Общие сведения
Адрес API
Все запросы к API отправляются как HTTP-запрос (GET/POST) на единый URL-адрес соответствующий методу (действию) который надо выполнить.
http://api.profisend.ru/имя_метода
Метод отправки данных
POST или GET. Рекомендуется POST метод.
Формат ответных данных
API возвращает результат в формате JSON.
Кодировка
Используемая кодировка в ответах и запросах UTF-8.
Авторизация
Для доступа к API-методам требуется авторизация каждого HTTP-запроса.
Авторизация в API осуществляется посредством передачи в параметрах запроса ID-клиента (номер договора) и верной цифровой подписи запроса секретным API-ключем PRIVATE_API_KEY. Значение PRIVATE_API_KEY (ключ API) генерируется автоматически и доступно в разделе Профиль.
HTTP-параметры для авторизации
Имя параметра | Описание |
---|---|
uid | ID-клиента (номер договора) от чьего имени осуществляется действие в API. |
sig | Подпись параметров HTTP-запроса. |
Алгоритм расчета подписи запроса
Параметр sig рассчитывается как MD5-хеш строки полученной путем конкатенации (объединения) uid (ID-клиента), имени вызываемого метода API, пар имя-значение параметров HTTP-запроса разделенных знаком равно (=) перечисленных в алфавитном порядке и значения PRIVATE_API_KEY.
Пример кода расчета подписи запроса (параметра sig) на языке PHP
/**
* Подпись параметров для передачи в АПИ
*
* @param array $api_params HTTP-параметры запроса к API
* @param string $api_method Имя вызываемого метода
* @param string $uid ID-клиента
* @param string $private_api_key Ключ API (из профиля)
* @param string $data Дополнительные данные
*/
function api_sig ($request_params, $api_method, $uid, $private_api_key, $data='') {
$params = api_sig_params_string($request_params);
return md5($uid . $api_method . $params . $data . $private_api_key);
}
/**
* Сбор параметров в строку
*
* @param array $request_params - Параметры HTTP-запроса
* @param mixed $parent_key - родительский ключ для рекурсии
*/
function api_sig_params_string ($request_params, $parent_key=null) {
$params = '';
ksort($request_params, SORT_STRING);
foreach ($request_params as $key => $value) {
if ($parent_key !== null || ($key != 'uid' && $key != 'method' && $key != 'sig')) {
if (is_array($value)) {
if ($parent_key) {
$key = $parent_key."[$key]";
}
$params .= api_sig_params_string ($value, $key);
} else {
if ($parent_key) {
$params .= $parent_key."[$key]=$value";
} else {
$params .= "$key=$value";
}
}
}
}
return $params;
}
Использование API в PHP
Вы можете использовать готовый код php-класса для работы с нашим API.
Использование API в JavaScript
Работа с методами API в JavaScript может быть органирована с использованием формата JSONP. Ниже приведен код библиотеки для работы с API рассылки смс на JavaScript.
Доступные методы API
- delivery.sendSms - отправка СМС сообщений
- delivery.report - получение отчетов по рассылкам
- delivery.cost - предварительный расчет стоимости рассылки