sd писал(а):Отправка запроса на получение статистикиДля получения статистики необходимо отправить HTTP запрос по адресу:
- Код: Выделить всё
http://api.comtube.ru/scripts/webphone_api/stat.php
В дополнение к адресу необходимо передавать следующие параметры:
- username - логин пользователя (обязательный параметр)
- cbk_id - Идентификатор вызова (опционально, по умолчанию =0)
- date - Дата, за которую необходимо получить статистику (опционально, формат ГГГГ-ММ-ДД)
- month - Месяц, за который необходимо получить статистику (опционально, используется только совместно с year)
- year - Год, за который необходимо получить статистику (опционально, используется только совместно с month)
- type - В каком виде вернуть результат: xml or csv (по умолчанию: csv)
- signature - подпись запроса (обязательный параметр). Как создать подпись смотрите раздел "Создание подписи (signature)".
При этом необходимо учитывать приоритет:
cbk_id,
date,
month и
year. То есть, если указаны все параметры, то статистика будет возвращаться только по параметру
cbk_id. Если его нет, то по
date, и так далее.
Обратите внимание, что параметры
month и
year используются вместе и по отдельности не работают.
Если возникла ошибка при формировании ответа, то ее описание будет возвращено вместо данных. Ниже приводится список ошибок:
- 400 - один из параметров указан неверно
- 401 - не указан логин пользователя
- 403 - учетная запись заблокирована
- 404 - ошибка авторизации. Неправильно сформирована подпись
- 500 - внутренняя ошибка
Пример отправки запроса и обработки ответаНиже приведен пример на языке программирования PHP для работы с данным API.
- Код: Выделить всё
<?
include_once('common/signature.inc');
$baseurl = "http://api.comtube.ru/scripts/webphone_api/stat.php";
// Создаем массив и заполняем его параметрами
$params = array();
$params["username"] = "mylogin";
$params["month"] = "10";
$params["year"] = "2010";
$params["type"] = "csv";
//$params["cbk_id"] = 505199;
// Создаем подпись к параметрам
$urlparams = BuildUrlParamsWithSignature($params, "mypassword");
// Формируем полный URL для обращения к серверу
$url = $baseurl . "?" . $urlparams;
// Инициализируем curl и отправляем запрос
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_HEADER, 0);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
$data = curl_exec($ch);
curl_close($ch);
// Анализируем результат
$matches = array();
preg_match("/([0-9]+);([^;]+);<br\/>/", $data, $matches);
if (count($matches) > 0)
{
$code = $matches[1];
$desc = $matches[2];
echo "code: " . $code . ", desc: " . $desc;
}
else
{
// Получен неправильный ответ от сервера
echo $data;
}
?>
Опять проблемы в разработке обратного звонка по АПИ. В запросе вызова обратного звонка я параметр uid использую для последующего запроса на статус вызова и в том числе для статистики этого вызова (после завершения вызова), который получаю от вашего сервера вида: 83d41187-d6e1-4866-9be2-27773804cfe. Но при запросе статистики вызова с указанием данного uid, так как мне нужна статистика именно этого вызова а не по дате или периоду, то результат не получаю. Когда решил его не указывать а запрос делаю по дате, то результат получаю но вот чудо, я вижу что параметр cbk_id (который должен быть в запросе) отсутствует, а есть некий cbk_side вида хххххххх знаков! Как это так? Точнее что я должен указывать в параметре запроса cbk_id, которого я не знаю по результатам АПИ вызова?
Сегодня я уже вижу cbk_id в ответе (запрос по дате), если я его потом ставлю в запросе, то ответ получаю тот который мне нужен, но вопрос открытым остается, где мне брать этот параметр cbk_id для запроса? Если как понимаю cbk_id и uid разные параметры!