API-Документация Flexbe
API позволяет получать и изменять информацию о заявках, клиентах, оплатах, а также отправлять информацию о событиях вашим скриптам.
Работа с API осуществляется путем отправки GET или POST запросов на адрес вида:
http://{ваш_домен}/mod/api/?api_key={ключ}
Данные возвращаются в кодировке utf-8, в формате JSON. Контент находится в объекте «data».
- curl 'http://yourdomain.ru/mod/api/?api_key=5xxxxxfc7103bde368b708b7f3ed95a004496740&method=checkConnection'
/* Ответ */
{"status":1} - echo file_get_contents(
'http://yourdomain.ru/mod/api/'
.'?api_key=5xxxc7103bde368b708b7f3ed95a004496740'
.'&method=checkConnection'
);
// В php.ini должна быть опция allow_url_fopen=On
/* Ответ */
{"status":1} - var request = require('request'); // npm install request request.post({ uri: 'http://yourdomain.ru/mod/api/', form: {
api_key:'5xxxc7103bde368b708b7f3ed95a004496740',
method:'checkConnection'
}}, function(err, res, body) {
console.log(JSON.parse(body));
});
/* Ответ */
{"status":1}
Подключение
Скачайте архив с примерами работы с API и обработчиками событий.
Получите секретный ключ и url адрес для запросов в панели управления, в разделе Настройки — Интеграции.
Укажите, если требуется, адреса ваших обработчиков событий.
- curl 'http://yourdomain.ru/mod/api/?api_key=xxxxxxxxxx'
- // Инициализируем класс для работы с API
require('flexbe_api.class.php');
$api_url = 'http://yourdomain.ru/mod/api/';
$api_key = 'ed677c52dccc04a456f846ebe06849b551f53f20';
$flexbe = new flexbeAPI($api_url,$api_key);
// Проверка подключения
if ( !$flexbe->checkConnection() ) {
print_r($flexbe->errors);
exit();
} - var request = require('request'); // npm install request
flexbeAPI = {
url:'http://yourdomain.ru/mod/api/',
api_key:'ed677c52dccc04a456f846ebe06849b551f53f20',
// Вызов метода API
query:function(method, params, callbackFunc){
params.api_key = this.api_key;
params.method = method;
request.post({uri: this.api_url, form: params},
function(err, res, body) { try {
callbackFunc(JSON.parse(body));
} catch (error) { console.log(error); } });
},
};
Ограничения
Методом getLeads можно получить до 1000 заявок за один запрос.
Если требуется получить больше 1000 заявок, нужно разбивать обращение к API на несколько запросов с указанием start и count (постраничная навигация).
Максимум 100 запросов к API в минуту.
Коды ошибок
0 — Некорректный ключ доступа
1 — Превышен лимит запросов
2 — Несуществующий метод
- // Объект с информацией об ошибке
error: {
code: 0,
msg: "Неверный api_key",
}
Методы
Имя метода передаётся в параметре &method=
http://{ваш_домен}/mod/api/?api_key={ключ}&method=getLeads
getLeads — получение
Заявки отсортированы по дате создания, от последней к первой.
- curl 'http://yourdomain.ru/mod/api/?api_key=xxxxx&method=getLeads&client_email=dev@flexbe.com'
- $leads_res = $flexbe->getLeads( array(
// Дата создания заявки больше чем месяц назад
'date_from'=>strtotime('-1 month'),
// но меньше сегодня
'date_to'=>strtotime('today UTC'),
)); - flexbeAPI.query('getLeads', {
status:0 // новые заявки
}, function(result){
var leads = result.data.leads;
for(var id in leads){
var lead = leads[id];
console.log(lead);
}
});
status
0 - Новая
1 - В работе
2 - Выполнена
10 - Отменена
11 - Удалена
date_from
timestamp, нижняя граница для фильтрации по дате создания заявки
date_to
timestamp, верхняя граница для фильтрации по дате создания заявки
client_phone
Телефон клиента, ищется точное совпадение
client_email
Email клиента, ищется точное совпадение
start
С какой позиции начинать. По умолчанию 0
count
Количество получаемых заявок. По умолчанию 25
Возвращаемая информация о заявке:
id
Уникальный идентификатор
num
Номер заявки
time
Timestamp времени создания заявки
status
Code — код статуса, name — название статуса
code - name:
0 — Новая
1 — В работе
2 —Выполнена
10 —Отменена
11 —Удалена
client
Массив с информацией о клиенте: name, phone, email
note
Заметки
form_name
Название формы заявки
form_data
Содержание полей из формы заявки
page
Страница, с которой отправлена заявка
url — адрес
name — название
utm
Содержание UTM меток, если они были.
utm_campaign — кампания
utm_medium — тип трафика
utm_term — ключевое слово
utm_content — тип объявления
url — полный адрес страницы
ym_client_id — это анонимный идентификатор, который Яндекс.Метрика автоматически присваивает каждому уникальному посетителю сайта. Действительно в случае, если на сайте подключена Яндекс.Метрика.
ga_client_id — идентификатор, который присваивает сервис Google, при наличии подключенного счета Google.
pay
Информация о счёте/оплате
id — уникальный индентификатор счёта
summ — сумма к оплате
status:
0 — ожидает оплаты
1 — в процессе оплаты
2 — оплачен
3 — ошибка оплаты
time_create —timestamp создания счёта
time_done — timestamp оплаты счёта
desc — комментарий для покупателя
pay_link — ссылка на страницу оплаты
- // Восстанавливаем удалённую заявку
if($lead['status']==11){
$result = $flexbe->changeLead($lead['id'], array(
'status'=>10,
));
}
changeLead - изменение
Поля для обновления заявки:
id*
Уникальный идентификатор редактируемой заявки
status
0 — Новая
1 — В работе
2 — Выполнена
10 — Отменена
11 — Удалена
client
Массив с информацией о клиенте: name, phone, email
note
Заметки
pay
Информация о счёте/оплате
summ — сумма к оплате
status:
0 — Ожидает оплаты
1 — В процессе оплаты
2 — Оплачен
3 — Ошибка оплаты
desc — комментарий для покупателя
Веб-хуки
Web-hook — это скрипт которому отправляется информация о событии.
Например, при создании новой заявки, наш сервер отправит вашему скрипту информацию о ней. Протокол POST. Код ответа должен быть 200 OK.
Это позволяет максимально быстро получать информацию и избавляет от необходимости отслеживать новые заявки/оплаты путём регулярных обращений к API.
Основные поля:
event
Тип события
site
Информация о сайте
data
Информация о событии (поля заявки)
- // print_r($_REQUEST);
[event] => 'lead',
[site] => Array (
[id] => 174911 // id аккаунта
[sub_id] => 180023 // id лендинга (группы страниц)
[domain] => yourdomain.ru
[name] => Лендинг
)
[data] => Array (
[id] => 1414
[num] => 414
[time] => 1444215670
[status] => Array
(
[code] => 0
[name] => Новая
)
[client] => Array
(
// ... и т.д.
)
Событие lead
Вызывается в момент создания заявки.
Веб-хуку в поле data передаётся информация о заявке.
Отправляемая информация о заявке:
id
Уникальный идентификатор
num
Номер заявки
time
timestamp времени создания заявки
status
Code — код статуса, name - название статуса
code — name:
0 — Новая
1 — В работе
2 — Выполнена
10 — Отменена
11 — Удалена
client
Массив с информацией о клиенте: name, phone, email
note
Заметки
form_name
Название формы заявки
form_data
Содержание полей из формы заявки
page
Страница, с которой отправлена заявка
url — адрес
name — название
utm
Содержание UTM меток, если они были.
utm_source — источник / рекламная система
utm_campaign — кампания
utm_medium — тип трафика
utm_term — ключевое слово
utm_content — тип объявления
url — полный адрес страницы
pay
Информация о счёте/оплате
id — уникальный индентификатор счёта
summ — сумма к оплате
status (code / name):
0 — Ожидает оплаты
1 — В процессе оплаты
2 — Оплачен
3 — Ошибка оплаты
time_create — timestamp создания счёта
time_done — timestamp оплаты счёта
desc — комментарий для покупателя
test — Флаг — тестовый платёж(через тестовый сервер робокассы)
Событие pay
Вызывается в момент сообщения об оплате или ошибки от эквайринга (Робокасса и т.д.)
Повторяются данные события lead (см. выше). Содержит обновлённые данные об оплате.
Помощь
По вопросам работы API пишите на dev@flexbe.com