Использование API SmartCallback начинается с создания личного кабинета (если у вас уже есть личный кабинет, то пропускаем этот пункт) на сайте smartcallback.ru: Регистрация личного кабинета создаёт область для хранения всех обращений, истории изменений и дополнительных настроек телефонии.
Далее регистрируем приложение для использования API:
В течение суток (фактически раньше) техподдержка присылает информацию для подключения post запросом. Вы получите следующие данные:
- Параметр
client_id
- уникальный номер клиента в SmartCallBack (у одного клиента может быть несколько доменов со своими настройками) - Параметр
domen_id
- уникальный номер домена, используется для обращения к конкретному домену - Параметр
signature
- цифровой ключ для обеспечения безопасности передаваемых данных - Параметр
apiToken
- Параметр
token
- аналог параметраdomen_id
- Ссылку на готовую php-библиотеку на github
Теперь у нас есть всё, чтобы начать работу с API SmartCallBack. Допустим, нам нужно создать на веб-странице инструмент, который звонит покупателю и связывает его с выбранным колл-центром из списка.
Вот составляющие такого инструмента:
- callStart_page.php - исполняемый файл, который получает входные данные и выводит на экран статус обращения (обработан/нет ответа/иное)
- SmartCallBackAPI.php - класс, который собирает post-запрос и отправляет его по адресу http://smartcallback.ru/api/v2/
- getQuerryList.php - метод, который возвращает нам список обращений
- сallstart.php - метод, который запускает звонок
- query_list - метод, который возвращает историю звонков в html
Далее создаем поля для ввода номеров: `
` При добавление масок и стилей получается очень даже приятный интерфейс:
Далее получаем введенные данные с форм и вызываем метод callStart, который запустит звонок.
//получаем данные со страницы
$tell_from = htmlspecialchars($_POST["tell_1"]);
$tell_to = htmlspecialchars($_POST["tell_2"]);
//создаём класс и передаём в него данные
$callstart = new class_callStart();
$callstart->from = "$tell_from";
$callstart->to = "$tell_to";
$callstart->callStar_function();
Сам класс class class_callStart
содержит:
public $to;
public $from;
function callStar_function(){
echo("$this->to");
echo("$this->from");
$POST = Array(
"client_id" => 1292,//в какой кабинет закидываем, токен или id
"domen_id" => 2204,//домен
"phoneto" => $this->to,//кому звоним
"phonefrom" => $this->from,//оператор
"utm_source" => 'referral'//utm метка
);
$SmartCallBackAPI = new SmartCallBack_API();
$SmartCallBackAPI->callStart($POST);
}
Вот список параметров, которые можно передать:
client_id (int) || token (string(20)) [One is REQUIRED]
- параметры идентификации клиента, для которого обращается APIdomen_id (int) [REQUIRED]
- идентификатор вашего домена (сайта), зарегистрированного в системе SmartCallBack.phoneto (string) [REQUIRED]
- номер абонента (phoneto), которому придет обычный входящий звонок от абонента phonefrom.phonefrom (string)
- номер абонента, который выступает в роли оператора. Ему придет звонок в первую очередь, робот предупредит его о звонке и соединит с абонентом phoneto.convenient (datetime)
- дата и время, в которое необходимо перезвонить. Система автоматически инициирует звонок в указанное время.utm_source (string)
- Utm-метка, которая будет связана с заявкой.utm_medium (string)
- Utm-метка, которая будет связана с заявкой.utm_campaign (string)
- Utm-метка, которая будет связана с заявкой.utm_content (string)
- Utm-метка, которая будет связана с заявкой.utm_term (string)
- Utm-метка, которая будет связана с заявкой.
Текущая библиотека не содержит нужного метода, просто дописываем его:
function callStart($POST = Array()){
$method = 'callStart';
$POST['client_id'] = self::$CLIENT_ID;
RETURN $this->apiRequest($method, $POST);
}
Параллельно вводим в SmartCallBackApi.php данные, которые прислала техподдержка:
const API_URL = 'https://smartcallback.ru/api/v2/';
const API_TOKEN = 'INSERT_YOU_API_TOKEN_HERE';
const API_SIGNATURE = 'INSERT_YOU_API_SIGNATURE_HERE';
public static $CLIENT_ID = 'INSERT_YOUR_CLIENT_ID';
public static $CLIENT_TOKEN = 'INSERT_YOUR_CLIENT_TOKEN';
Далее создаем query_list, который будет вызывать getQuerryList для получения заявок за сегодняшний день, а затем возвращать на основную страницу html для построения таблицы:
function printResult($result_array)
{
$HTML = '';
$phone_array =[];
$status_array =[];
$count_array = count($result_array["response"]["queries"]);
for($i=0; $i < $count_array; $i++){
$HTML = $HTML . '
<tr><td width="265" valign="top">
<p>' . $result_array["response"]["queries"}[$i]["phone"] . '</p>
</td>
<td width="265" valign="top">
<p>' . $result_array["response"]["queries"][$i]["status"]["title"] . '</p>
</td>
</tr>';
}
return $HTML;
}
Сам getQueryList.php
включает в себя:
function getQuery_function(){
$today = date("m.d.y");
$POST = Array(
"client_id" => 1292,
"date_from" => strtotime($today),
);
$SmartCallBackAPI = new SmartCallBack_API();
$SmartCallBackAPI->getQueryList($POST);
$result_array=json_decode($SmartCallBackAPI->RESULT, true);
return $result_array;
}
Метод принимает следующие параметры:
client_id (int)
||token
(string(20)) [One is REQUIRED] - параметры идентификации клиента, для которого обращается APIdate_from
(int) - метка времени time() создания заявки, начиная с которой необходимо получить заявкиdate_to
(int) - метка времени time() создания заявки, до которой необходимо получить заявкиdomen_id
(int) - идентификатор домена, подключенного к SmartCallBack, для получения заявок только по указанному доменуdomen
(string(100)) - домен сайта, по которому необходимо отфильтровать заявки. Например: site.rustatus
(tinyint(2)) - код статуса заявки. Получить список и описание заявок StatusesGetList()phone
(string(20)) - номер телефона покупателя для фильтрации всех его заявок. Вводится в формате +7(495)125-10-80 или 74951251080tag_id
(int) - идентификатор тега, которым отмечена заявкаquery_ids
(string()) - перечисление ID заявок через запятую, например: 123,125,108. Не более 100 заявок за запрос.
В основной файл подключаем написанный query_list и производим вывод:
require_once 'query_list.php';
$getQuery_class = new getQuery_class();
$result_array=$getQuery_class->getQuery_function();
$HTML = printResult($result_array);
<table border="1" cellspacing="0" cellpadding="0" width="529" style="text-align: center;"><?php print($HTML); ?> </table>
В результате получилась веб-страница, из которой можно запустить звонок на указанный номер, а также вывести историю за сутки по предыдущим звонкам:
Полный список всех возможных методов, а также документацию смотрите по ссылке.