Przejdź do głównej zawartości

Ringostat API. Eksport statystyk z Dziennika połączeń

Napisane przez Valeriia Zaptalova
Zaktualizowano ponad tydzień temu

Zapytanie API do eksportu dziennika połączeń umożliwia pobranie ponad 30 parametrów w wygodnym dla Państwa formacie.

Za pomocą jednego zapytania można uzyskać pełną historię interakcji użytkownika z witryną oraz połączeniami.

W połączeniu z funkcjonalnością przekierowania za pomocą Webhook przed połączeniem klienta, mogą Państwo sprawdzić jego numer — czy połączenie było powtórne oraz/lub czy istnieje połączenie wychodzące, aby przekierować je do menedżera, z którym abonent wcześniej rozmawiał.

Proszę zwrócić uwagę, że podczas eksportu danych z dziennika połączeń obowiązuje ograniczenie — nie ma możliwości pobrania więcej niż 6500 połączeń jednym zapytaniem. Aby wyeksportować wymagane dane, należy podzielić okres w taki sposób, aby jedno zapytanie obejmowało mniej niż 6500 połączeń.

Główne parametry zapytania:

Nazwa parametru

Opis

Wartość domyślna

export_type

Format eksportu danych: json lub csv

json

from

Data i godzina rozpoczęcia eksportu w formacie YYYY-MM-DD HH:MM:SS

wartość to minus 24 godziny

to

Data i godzina zakończenia eksportu w formacie YYYY-MM-DD HH:MM:SS (dane zostaną pobrane do wskazanej daty, bez jej uwzględnienia)

bieżąca data i godzina

fields

Lista pól do pobrania z dziennika połączeń, oddzielonych przecinkami

calldate, caller, dst

filters

Filtry do wyboru danych spełniających określone warunki

brak

order

Sortowanie wyników

bieżąca data i godzina

merge

Grupowanie danych według numeru:

0 – nie grupować;

1 – grupować co 24 godziny;

2 – grupować za cały okres

nie grupować

Przykład dla Node.js:

const https = require('https');
const config = {
host: 'api.ringostat.net',
path: '/calls/list?export_type=json&from=2019-06-01%2000:00:00&to=2019-06-18%2023:59:59­&fields=calldate,caller,dst,disposition,billsec,utm_source,utm_medium,recording',
method: 'GET',
headers: {
'Content-Type': 'application/json',
'Auth-key': 'unique_auth_key_value'
}
};
const callback = response => {
let result = Buffer.alloc(0);
response.on('data', chunk => {
result = Buffer.concat([ result, chunk ]);
});
response.on('end', () => {
//handle response
})
};
const request = https.request(config, callback);
request.end();


Przykład dla Axios.js

const axios = require('axios');
axios({
url: 'https://api.ringostat.net/calls/list',
method: 'GET',
headers: {
'Content-Type': 'application/json; charset=utf-8',
'Auth-key': 'unique_auth_key_value'
},
params: JSON.stringify({
'export_type': 'json',
'from': '2019-06-01 00:00:00',
'to': '2019-06-18 23:59:59',
'fields': 'calldate,caller,dst,disposition,billsec,utm_source,utm_medium,recording'
})
}).then(response => {
//handle response
}).catch(error => {
//handle error
})

Przykład dla cURL

curl "https://api.ringostat.net/calls/list?export_type=json&from=2019-06-01 00:00:00&to=2019-06-18 23:59:59&fields=calldate,caller,dst,disposition,billsec,utm_source,utm_medium,recording" \
-H "Content-Type: application/json" \
-H "Auth-key: unique_auth_key_value"

Wynik:

Pola do wyboru

Po podstawowych parametrach następują pola do wyboru. Do ich dodania używany jest parametr fields, który pozwala wskazać jedno lub kilka pól oddzielonych przecinkami.

Filtry wyboru

Filtry są potrzebne do wybrania połączeń według określonych parametrów.

Filtr składa się z nazwy pola, operatora porównania oraz wartości w odpowiedniej kolejności.

Do dodania filtra używany jest parametr filters, który umożliwia dodanie jednego lub kilku filtrów oddzielonych przecinkami.

Filtr

Opis

>

większe niż

<

mniejsze niż

>=

większe lub równe

<=

mniejsze lub równe

=

równe

<>

różne

~

wyrażenie regularne

Literał musi być zakodowany w base64.

Grupowanie i sortowanie

Grupowanie połączeń według numeru służy do agregacji danych i ułatwia ich analizę wizualną po eksporcie.

Do grupowania używany jest parametr merge, który domyślnie ma wartość 0.

Sortowanie jest jednym z narzędzi porządkowania pobranych danych.

Do sortowania używany jest parametr order, który domyślnie ma wartość calldate%20asc.

Nazwa parametru

Wartość

order

asc – rosnąco;

desc – malejąco

merge

0 – nie grupować;

1 – grupować dziennie;

2 – grupować za cały okres

Test zapytania

Mogą Państwo sprawdzić, jak wygląda zapytanie w różnych językach programowania na stronie:
https://ringostat.readme.io/reference/get_calls-list

Na tej stronie można również wskazać wymagane parametry (1) oraz Auth-key (2), a następnie wysłać zapytanie testowe (3):

Czy to odpowiedziało na twoje pytanie?