версия от 2024-02-11
Группа методов позволяет пользоваться услугой Flash Call — настраивать, управлять пакетами и отправлять вызовы.
Адрес: https://restapi.plusofon.ru
GET
api/v1/flash-call
Метод позволяет получить список всех аккаунтов Flash Call.
Не имеет параметров.
curl -X GET \
-G "https://restapi.plusofon.ru/api/v1/flash-call" \
-H "Content-Type: application/json" \
-H "Accept: application/json" \
-H "Client: 10553" \
-H "Authorization: Bearer {token}"
const url = new URL(
"https://restapi.plusofon.ru/api/v1/flash-call"
);
let headers = {
"Content-Type": "application/json",
"Accept": "application/json",
"Client": "10553",
"Authorization": "Bearer {token}",
};
fetch(url, {
method: "GET",
headers: headers,
})
.then(response => response.json())
.then(json => console.log(json));
$client = new \GuzzleHttp\Client();
$response = $client->get(
'https://restapi.plusofon.ru/api/v1/flash-call',
[
'headers' => [
'Content-Type' => 'application/json',
'Accept' => 'application/json',
'Client' => '10553',
'Authorization' => 'Bearer {token}',
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
import requests
import json
url = 'https://restapi.plusofon.ru/api/v1/flash-call'
headers = {
'Content-Type': 'application/json',
'Accept': 'application/json',
'Client': '10553',
'Authorization': 'Bearer {token}'
}
response = requests.request('GET', url, headers=headers)
response.json()
В ответе возвращается массив data
:
id
ИД аккаунта Flash Call
access_token
токен для отправки вызовов
name
имя аккаунта Flash Call
{
"data": [
{
"id": 7,
"access_token": "asIMhmb1ADRtpn1MdsxPOfT8yYcV5ftZ",
"name": "test7"
},
{
"id": 6,
"access_token": "fbbF12N6jzag4a77AZO7aalT5j0zUSy9",
"name": "test6"
}
],
"success": true
}
POST
api/v1/flash-call
Метод позволяет создать новый аккаунт услуги Flash Call.
Body
name
stringcurl -X POST \
"https://restapi.plusofon.ru/api/v1/flash-call" \
-H "Content-Type: application/json" \
-H "Accept: application/json" \
-H "Client: 10553" \
-H "Authorization: Bearer {token}" \
-d '{"name":"aut"}'
const url = new URL(
"https://restapi.plusofon.ru/api/v1/flash-call"
);
let headers = {
"Content-Type": "application/json",
"Accept": "application/json",
"Client": "10553",
"Authorization": "Bearer {token}",
};
let body = {
"name": "aut"
}
fetch(url, {
method: "POST",
headers: headers,
body: body
})
.then(response => response.json())
.then(json => console.log(json));
$client = new \GuzzleHttp\Client();
$response = $client->post(
'https://restapi.plusofon.ru/api/v1/flash-call',
[
'headers' => [
'Content-Type' => 'application/json',
'Accept' => 'application/json',
'Client' => '10553',
'Authorization' => 'Bearer {token}',
],
'json' => [
'name' => 'aut',
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
import requests
import json
url = 'https://restapi.plusofon.ru/api/v1/flash-call'
payload = {
"name": "aut"
}
headers = {
'Content-Type': 'application/json',
'Accept': 'application/json',
'Client': '10553',
'Authorization': 'Bearer {token}'
}
response = requests.request('POST', url, headers=headers, json=payload)
response.json()
В ответе возвращается:
account_id
ИД созданного аккаунта Flash Call
access_token
токен для отправки вызовов
Аккаунт Flash Call успешно создан:
{
"data": {
"account_id": 7,
"access_token": "asIMhmb1ADRtpn1MdsxPKaW8yYcV5ftZ"
},
"success": true
}
Не указан обязательный параметр:
{
"message": "The name field is required",
"code": 400
}
PATCH
api/v1/flash-call/{account_id}
Метод позволяет отредактировать конкретный аккаунт услуги Flash Call.
Path
account_id
stringi
Body
name
stringcurl -X PATCH \
"https://restapi.plusofon.ru/api/v1/flash-call/42" \
-H "Content-Type: application/json" \
-H "Accept: application/json" \
-H "Client: 10553" \
-H "Authorization: Bearer {token}" \
-d '{"name":"Тест"}'
const url = new URL(
"https://restapi.plusofon.ru/api/v1/flash-call/42"
);
let headers = {
"Content-Type": "application/json",
"Accept": "application/json",
"Client": "10553",
"Authorization": "Bearer {token}",
};
let body = {
"name": "Тест"
}
fetch(url, {
method: "PATCH",
headers: headers,
body: body
})
.then(response => response.json())
.then(json => console.log(json));
$client = new \GuzzleHttp\Client();
$response = $client->patch(
'https://restapi.plusofon.ru/api/v1/flash-call/42',
[
'headers' => [
'Content-Type' => 'application/json',
'Accept' => 'application/json',
'Client' => '10553',
'Authorization' => 'Bearer {token}',
],
'json' => [
'name' => 'Тест',
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
import requests
import json
url = 'https://restapi.plusofon.ru/api/v1/flash-call/42'
payload = {
"name": "Тест"
}
headers = {
'Content-Type': 'application/json',
'Accept': 'application/json',
'Client': '10553',
'Authorization': 'Bearer {token}'
}
response = requests.request('PATCH', url, headers=headers, json=payload)
response.json()
В ответе возвращается объект "data"
:
account_id
ИД изменённого аккаунта Flash Call
name
новое имя аккаунта
Аккаунт Flash Call успешно изменён:
{
"data": {
"account_id": 42,
"name": "Тест"
},
"success": true
}
Не указан обязательный параметр:
{
"message": "The name field is required",
"code": 400
}
GET
api/v1/flash-call/{account_id}/settings
Метод позволяет получить настройки конкретного аккаунта Flash Call.
Path
account_id
stringi
curl -X GET \
-G "https://restapi.plusofon.ru/api/v1/flash-call/42/settings" \
-H "Content-Type: application/json" \
-H "Accept: application/json" \
-H "Client: 10553" \
-H "Authorization: Bearer {token}"
const url = new URL(
"https://restapi.plusofon.ru/api/v1/flash-call/42/settings"
);
let headers = {
"Content-Type": "application/json",
"Accept": "application/json",
"Client": "10553",
"Authorization": "Bearer {token}",
};
fetch(url, {
method: "GET",
headers: headers,
})
.then(response => response.json())
.then(json => console.log(json));
$client = new \GuzzleHttp\Client();
$response = $client->get(
'https://restapi.plusofon.ru/api/v1/flash-call/42/settings',
[
'headers' => [
'Content-Type' => 'application/json',
'Accept' => 'application/json',
'Client' => '10553',
'Authorization' => 'Bearer {token}',
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
import requests
import json
url = 'https://restapi.plusofon.ru/api/v1/flash-call/42/settings'
headers = {
'Content-Type': 'application/json',
'Accept': 'application/json',
'Client': '10553',
'Authorization': 'Bearer {token}'
}
response = requests.request('GET', url, headers=headers)
response.json()
В ответе возвращается массив "data"
:
token_lifetime_sec
integer
время жизни пин-кода (в секундах)
pin_tries
integer
лимит попыток ввода пин-кода
return_operator
boolean
признак указания в ответе оператора, на которого отправлен Flash-вызов
operators
array
массив настроек запрета вызовов для конкретного оператора связи
/ <имя_оператора>
object
объект с параметром для указанного оператора
allowed
booleanreturn_pin
boolean
признак указания в ответе пин-кода, полученного абонентом
same_pin_phone
boolean
признак совпадения последних цифр номера и пин-кода, проговариваемого голосом
hook_url
string
адрес обработчика вебхуков i
{
"data": {
"token_lifetime_sec": 180,
"pin_tries": 3,
"return_operator": true,
"operators": {
"mts": {
"allowed": true
},
"beeline": {
"allowed": true
},
"megafon": {
"allowed": true
},
"tele2": {
"allowed": true
},
"others": {
"allowed": true
}
},
"return_pin": false,
"same_pin_phone": false,
"hook_url": "https:\/\/webhook.site\/f6cc3bee-1f26-40af-b2ba-1fafe4b40b11"
},
"success": true
}
POST
api/v1/flash-call/{account_id}/settings
Метод позволяет изменять настройки конкретного аккаунта Flash Call.
Максимальные лимиты описаны в статье «услуга Flash Call».
Path
account_id
stringi
Body
token_lifetime_sec
integer / {30 ... 300}
время жизни пин-кода (в секундах, по умолчанию — 60)
pin_tries
integer / {1 ... 3}
лимит попыток ввода пин-кода (по умолчанию — 3)
return_operator
boolean
признак указания в ответе оператора, на которого отправлен Flash-вызов
operators
array
массив настроек запрета вызовов для конкретного оператора связи
/ <имя_оператора>
object
объект с параметром для указанного оператора
allowed
boolean"operators": {
"mts": {
"allowed": true
},
"beeline": {
"allowed": true
},
"megafon": {
"allowed": true
},
"tele2": {
"allowed": true
},
"others": /* все прочие */ {
"allowed": true
}
}
return_pin
boolean
признак указания в ответе пин-кода, полученного абонентом
same_pin_phone
boolean
признак совпадения последних цифр номера и пин-кода, проговариваемого голосом
hook_url
string
адрес обработчика вебхуков i
curl -X POST \
"https://restapi.plusofon.ru/api/v1/flash-call/42/settings" \
-H "Content-Type: application/json" \
-H "Accept: application/json" \
-H "Client: 10553" \
-H "Authorization: Bearer {token}" \
-d '{"token_lifetime_sec":5,"pin_tries":18,"return_operator":false,"operators":["others":{"allowed":true}],"return_pin":false,"same_pin_phone":true,"hook_url":"id"}'
const url = new URL(
"https://restapi.plusofon.ru/api/v1/flash-call/42/settings"
);
let headers = {
"Content-Type": "application/json",
"Accept": "application/json",
"Client": "10553",
"Authorization": "Bearer {token}",
};
let body = {
"token_lifetime_sec": 5,
"pin_tries": 18,
"return_operator": false,
"operators": [
"others": {
"allowed": true
}
],
"return_pin": false,
"same_pin_phone": true,
"hook_url": "id"
}
fetch(url, {
method: "POST",
headers: headers,
body: body
})
.then(response => response.json())
.then(json => console.log(json));
$client = new \GuzzleHttp\Client();
$response = $client->post(
'https://restapi.plusofon.ru/api/v1/flash-call/42/settings',
[
'headers' => [
'Content-Type' => 'application/json',
'Accept' => 'application/json',
'Client' => '10553',
'Authorization' => 'Bearer {token}',
],
'json' => [
'token_lifetime_sec' => 5,
'pin_tries' => 18,
'return_operator' => false,
'operators' => [
'others' => [
[
'allowed' => true,
],
],
],
'return_pin' => false,
'same_pin_phone' => true,
'hook_url' => 'id',
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
import requests
import json
url = 'https://restapi.plusofon.ru/api/v1/flash-call/42/settings'
payload = {
"token_lifetime_sec": 5,
"pin_tries": 18,
"return_operator": false,
"operators": [
"others": {
"allowed": true
}
],
"return_pin": false,
"same_pin_phone": true,
"hook_url": "id"
}
headers = {
'Content-Type': 'application/json',
'Accept': 'application/json',
'Client': '10553',
'Authorization': 'Bearer {token}'
}
response = requests.request('POST', url, headers=headers, json=payload)
response.json()
В ответе может возвращаться:
success
признак успешно выполненного запроса
message
сообщение об ошибке
Настройки успешно обновлены:
{
"success": true
}
DELETE
api/v1/flash-call/{account_id}
Метод позволяет удалить конкретный аккаунт услуги Flash Call.
Path
account_id
stringi
curl -X DELETE \
"https://restapi.plusofon.ru/api/v1/flash-call/42" \
-H "Content-Type: application/json" \
-H "Accept: application/json" \
-H "Client: 10553" \
-H "Authorization: Bearer {token}"
const url = new URL(
"https://restapi.plusofon.ru/api/v1/flash-call/42"
);
let headers = {
"Content-Type": "application/json",
"Accept": "application/json",
"Client": "10553",
"Authorization": "Bearer {token}",
};
fetch(url, {
method: "DELETE",
headers: headers,
})
.then(response => response.json())
.then(json => console.log(json));
$client = new \GuzzleHttp\Client();
$response = $client->delete(
'https://restapi.plusofon.ru/api/v1/flash-call/42',
[
'headers' => [
'Content-Type' => 'application/json',
'Accept' => 'application/json',
'Client' => '10553',
'Authorization' => 'Bearer {token}',
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
import requests
import json
url = 'https://restapi.plusofon.ru/api/v1/flash-call/42'
headers = {
'Content-Type': 'application/json',
'Accept': 'application/json',
'Client': '10553',
'Authorization': 'Bearer {token}'
}
response = requests.request('DELETE', url, headers=headers)
response.json()
В ответе может возвращаться:
success
признак успешно выполненного запроса
message
сообщение об ошибке
Аккаунт Flash Call успешно удалён:
{
"success": true
}
Передан некорректный ИД аккаунта Flash Call:
{
"message": "The account id must belong to the customer",
"code": 400
}
GET
api/v1/flash-call/settings
Метод позволяет получить текущие общие настройки услуги Flash Call.
Не имеет параметров.
curl -X GET \
-G "https://restapi.plusofon.ru/api/v1/flash-call/settings" \
-H "Content-Type: application/json" \
-H "Accept: application/json" \
-H "Client: 10553" \
-H "Authorization: Bearer {token}"
const url = new URL(
"https://restapi.plusofon.ru/api/v1/flash-call/settings"
);
let headers = {
"Content-Type": "application/json",
"Accept": "application/json",
"Client": "10553",
"Authorization": "Bearer {token}",
};
fetch(url, {
method: "GET",
headers: headers,
})
.then(response => response.json())
.then(json => console.log(json));
$client = new \GuzzleHttp\Client();
$response = $client->get(
'https://restapi.plusofon.ru/api/v1/flash-call/settings',
[
'headers' => [
'Content-Type' => 'application/json',
'Accept' => 'application/json',
'Client' => '10553',
'Authorization' => 'Bearer {token}',
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
import requests
import json
url = 'https://restapi.plusofon.ru/api/v1/flash-call/settings'
headers = {
'Content-Type': 'application/json',
'Accept': 'application/json',
'Client': '10553',
'Authorization': 'Bearer {token}'
}
response = requests.request('GET', url, headers=headers)
response.json()
В ответе возвращается массив data
:
calls_per_hour
лимит запросов в час
calls_per_day
лимит запросов в день
calls_per_user_hour
лимит запросов в час на один номер
calls_per_user_day
лимит запросов в день на один номер
Остальные параметры можно получить методом получения настроек Flash-аккаунта
{
"data": {
"calls_per_user_hour": 7,
"calls_per_user_day": 15,
"calls_per_hour": 100,
"calls_per_day": 400
},
"success": true
}
POST
api/v1/flash-call/settings
Метод позволяет изменять общие настройки услуги Flash Call.
Максимальные лимиты описаны в статье «услуга Flash Call».
Body
calls_per_hour
integer / {1 ... 50000}
лимит запросов в час (по умолчанию — 500)
calls_per_day
integer / {1 ... 300000}
лимит запросов в день (по умолчанию — 3000)
calls_per_user_hour
integer / {1 ... 15}
лимит запросов в час на один номер (по умолчанию — 5)
calls_per_user_day
integer / {1 ... 30}
лимит запросов в день на один номер (по умолчанию — 10)
Остальные параметры можно обновить методом обновления настроек Flash-аккаунта
curl -X POST \
"https://restapi.plusofon.ru/api/v1/flash-call/settings" \
-H "Content-Type: application/json" \
-H "Accept: application/json" \
-H "Client: 10553" \
-H "Authorization: Bearer {token}" \
-d '{"calls_per_user_hour":1,"calls_per_user_day":9,"calls_per_hour":15,"calls_per_day":3}'
const url = new URL(
"https://restapi.plusofon.ru/api/v1/flash-call/settings"
);
let headers = {
"Content-Type": "application/json",
"Accept": "application/json",
"Client": "10553",
"Authorization": "Bearer {token}",
};
let body = {
"calls_per_user_hour": 1,
"calls_per_user_day": 9,
"calls_per_hour": 15,
"calls_per_day": 3
}
fetch(url, {
method: "POST",
headers: headers,
body: body
})
.then(response => response.json())
.then(json => console.log(json));
$client = new \GuzzleHttp\Client();
$response = $client->post(
'https://restapi.plusofon.ru/api/v1/flash-call/settings',
[
'headers' => [
'Content-Type' => 'application/json',
'Accept' => 'application/json',
'Client' => '10553',
'Authorization' => 'Bearer {token}',
],
'json' => [
'calls_per_user_hour' => 1,
'calls_per_user_day' => 9,
'calls_per_hour' => 15,
'calls_per_day' => 3,
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
import requests
import json
url = 'https://restapi.plusofon.ru/api/v1/flash-call/settings'
payload = {
"calls_per_user_hour": 1,
"calls_per_user_day": 9,
"calls_per_hour": 15,
"calls_per_day": 3
}
headers = {
'Content-Type': 'application/json',
'Accept': 'application/json',
'Client': '10553',
'Authorization': 'Bearer {token}'
}
response = requests.request('POST', url, headers=headers, json=payload)
response.json()
В ответе может возвращаться:
success
признак успешно выполненного запроса
message
сообщение об ошибке
Настройки успешно обновлены:
{
"success": true
}
GET
api/v1/flash-call/proposals/{account_id}
Метод позволяет получить данные пакета, подключенного в настоящий момент на конкретном аккаунте Flash Call.
Path
account_id
stringi
curl -X GET \
-G "https://restapi.plusofon.ru/api/v1/flash-call/proposals/42" \
-H "Content-Type: application/json" \
-H "Accept: application/json" \
-H "Client: 10553" \
-H "Authorization: Bearer {token}"
const url = new URL(
"https://restapi.plusofon.ru/api/v1/flash-call/proposals/42"
);
let headers = {
"Content-Type": "application/json",
"Accept": "application/json",
"Client": "10553",
"Authorization": "Bearer {token}",
};
fetch(url, {
method: "GET",
headers: headers,
})
.then(response => response.json())
.then(json => console.log(json));
$client = new \GuzzleHttp\Client();
$response = $client->get(
'https://restapi.plusofon.ru/api/v1/flash-call/proposals/42',
[
'headers' => [
'Content-Type' => 'application/json',
'Accept' => 'application/json',
'Client' => '10553',
'Authorization' => 'Bearer {token}',
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
import requests
import json
url = 'https://restapi.plusofon.ru/api/v1/flash-call/proposals/42'
headers = {
'Content-Type': 'application/json',
'Accept': 'application/json',
'Client': '10553',
'Authorization': 'Bearer {token}'
}
response = requests.request('GET', url, headers=headers)
response.json()
В ответе возвращается массив data
:
id
ИД подключения
customer_id
ИД договора
account_id
ИД аккаунта Flash Call
proposal_id
ИД пакета
calls_left
остаток Flash-вызовов в пакете
end_packet_time
дата и время окончания действия текущего периода пакета
time_left
время до окончания действия текущего периода пакета
name
название пакета
count_call
общее количество Flash-вызовов в пакете
{
"data": [
{
"id": 9,
"customer_id": 113751,
"account_id": 42,
"proposal_id": "23001dac-42b1-8978-2275-62c28f55bda1",
"calls_left": 100,
"end_packet_time": "2022-11-30 23:59:59",
"time_left": "+1 дней 8 часов"
}
],
"success": true
}
GET
api/v1/flash-call/proposals
Метод позволяет получить список доступных для подключения пакетов услуги Flash Call.
Не имеет параметров.
curl -X GET \
-G "https://restapi.plusofon.ru/api/v1/flash-call/proposals" \
-H "Content-Type: application/json" \
-H "Accept: application/json" \
-H "Client: 10553" \
-H "Authorization: Bearer {token}"
const url = new URL(
"https://restapi.plusofon.ru/api/v1/flash-call/proposals"
);
let headers = {
"Content-Type": "application/json",
"Accept": "application/json",
"Client": "10553",
"Authorization": "Bearer {token}",
};
fetch(url, {
method: "GET",
headers: headers,
})
.then(response => response.json())
.then(json => console.log(json));
$client = new \GuzzleHttp\Client();
$response = $client->get(
'https://restapi.plusofon.ru/api/v1/flash-call/proposals',
[
'headers' => [
'Content-Type' => 'application/json',
'Accept' => 'application/json',
'Client' => '10553',
'Authorization' => 'Bearer {token}',
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
import requests
import json
url = 'https://restapi.plusofon.ru/api/v1/flash-call/proposals'
headers = {
'Content-Type': 'application/json',
'Accept': 'application/json',
'Client': '10553',
'Authorization': 'Bearer {token}'
}
response = requests.request('GET', url, headers=headers)
response.json()
В ответе возвращается массив data
:
id
ИД пакета
count_call
объём пакета
amount
абонентская плата за пакет (руб. в месяц)
amount_in_packet
рассчётная стоимость Flash-вызова в пакете
amount_out_packet
стоимость Flash-вызова сверх пакета
name
название пакета
flashcall_ivr
признак пакета для «голосового Flash Call»
flashcall_reverse
признак пакета для «обратного Flash Call»
{
"data": [
{
"id": "100b3613-653a-c128-75a6-62c295fb6ab8",
"count_call": "5000.0000",
"amount": "1750.0000",
"amount_in_packet": "0.3500",
"amount_out_packet": "0.3800",
"name": "пакет 5 000"
},
...
],
"success": true
}
PUT
api/v1/flash-call/proposals/{account_id}
Метод позволяет подключить пакет на конкретный аккаунт Flash Call.
curl -X PUT \
"https://restapi.plusofon.ru/api/v1/flash-call/proposals/42" \
-H "Content-Type: application/json" \
-H "Accept: application/json" \
-H "Client: 10553" \
-H "Authorization: Bearer {token}" \
-d '{"proposal_id":"necessitatibus"}'
const url = new URL(
"https://restapi.plusofon.ru/api/v1/flash-call/proposals/42"
);
let headers = {
"Content-Type": "application/json",
"Accept": "application/json",
"Client": "10553",
"Authorization": "Bearer {token}",
};
let body = {
"proposal_id": "necessitatibus"
}
fetch(url, {
method: "PUT",
headers: headers,
body: body
})
.then(response => response.json())
.then(json => console.log(json));
$client = new \GuzzleHttp\Client();
$response = $client->put(
'https://restapi.plusofon.ru/api/v1/flash-call/proposals/42',
[
'headers' => [
'Content-Type' => 'application/json',
'Accept' => 'application/json',
'Client' => '10553',
'Authorization' => 'Bearer {token}',
],
'json' => [
'proposal_id' => 'necessitatibus',
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
import requests
import json
url = 'https://restapi.plusofon.ru/api/v1/flash-call/proposals/42'
payload = {
"proposal_id": "necessitatibus"
}
headers = {
'Content-Type': 'application/json',
'Accept': 'application/json',
'Client': '10553',
'Authorization': 'Bearer {token}'
}
response = requests.request('PUT', url, headers=headers, json=payload)
response.json()
В ответе может возвращаться:
success
признак успешно выполненного запроса
message
сообщение об ошибке
Пакет успешно подключен:
{
"success": true
}
DELETE
api/v1/flash-call/proposals/{account_id}
Метод позволяет удалить пакет с конкретного аккаунта Flash Call.
Path
account_id
stringi
curl -X DELETE \
"https://restapi.plusofon.ru/api/v1/flash-call/proposals/42" \
-H "Content-Type: application/json" \
-H "Accept: application/json" \
-H "Client: 10553" \
-H "Authorization: Bearer {token}"
const url = new URL(
"https://restapi.plusofon.ru/api/v1/flash-call/proposals/42"
);
let headers = {
"Content-Type": "application/json",
"Accept": "application/json",
"Client": "10553",
"Authorization": "Bearer {token}",
};
fetch(url, {
method: "DELETE",
headers: headers,
})
.then(response => response.json())
.then(json => console.log(json));
$client = new \GuzzleHttp\Client();
$response = $client->delete(
'https://restapi.plusofon.ru/api/v1/flash-call/proposals/42',
[
'headers' => [
'Content-Type' => 'application/json',
'Accept' => 'application/json',
'Client' => '10553',
'Authorization' => 'Bearer {token}',
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
import requests
import json
url = 'https://restapi.plusofon.ru/api/v1/flash-call/proposals/42'
headers = {
'Content-Type': 'application/json',
'Accept': 'application/json',
'Client': '10553',
'Authorization': 'Bearer {token}'
}
response = requests.request('DELETE', url, headers=headers)
response.json()
В ответе может возвращаться:
success
признак успешно выполненного запроса
message
сообщение об ошибке
Пакет успешно удалён:
{
"success": true
}
POST
api/v1/flash-call/send
Метод позволяет отправить Flash-вызов на определённый телефонный номер.
Для авторизации необходимо использовать
access_token
, полученный методом добавления аккаунта Flash Call .
Body
phone
string
⁎ целевой телефонный номер
pin
string
желаемый пин-код — если указать, система подберёт подходящий номер
curl -X POST \
"https://restapi.plusofon.ru/api/v1/flash-call/send" \
-H "Content-Type: application/json" \
-H "Accept: application/json" \
-H "Client: 10553" \
-H "Authorization: Bearer {token}" \
-d '{"phone":"79993332210"}'
const url = new URL(
"https://restapi.plusofon.ru/api/v1/flash-call/send"
);
let headers = {
"Content-Type": "application/json",
"Accept": "application/json",
"Client": "10553",
"Authorization": "Bearer {token}",
};
let body = {
"phone": "79993332210"
}
fetch(url, {
method: "POST",
headers: headers,
body: body
})
.then(response => response.json())
.then(json => console.log(json));
$client = new \GuzzleHttp\Client();
$response = $client->post(
'https://restapi.plusofon.ru/api/v1/flash-call/send',
[
'headers' => [
'Content-Type' => 'application/json',
'Accept' => 'application/json',
'Client' => '10553',
'Authorization' => 'Bearer {token}',
],
'json' => [
'phone' => '79993332210',
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
import requests
import json
url = 'https://restapi.plusofon.ru/api/v1/flash-call/send'
payload = {
"phone": "79993332210"
}
headers = {
'Content-Type': 'application/json',
'Accept': 'application/json',
'Client': '10553',
'Authorization': 'Bearer {token}'
}
response = requests.request('POST', url, headers=headers, json=payload)
response.json()
В ответе возвращается:
key
ключ проверки пин-кода
operator
оператор номера, на который отправлен Flash-вызов
для отображения необходимо включить параметр return_operator
методом POST api/v1/flash-call/settings
pin
для отображения необходимо включить параметр return_pin
методом POST api/v1/flash-call/settings
Flash-вызов успешно отправлен:
{
"data": {
"pin":"2372"
"key": "s3rpR5WpDnAaHIxrcF7DA2g2Q",
"operator": "beeline"
},
"success": true
}
POST
api/v1/flash-call/check
Метод позволяет проверить Flash-вызов.
Body
key
string
⁎ ключ проверки i
pin
string
⁎ пин-код (последние 4 цифры звонившего номера)
curl -X POST \
"https://restapi.plusofon.ru/api/v1/flash-call/check" \
-H "Content-Type: application/json" \
-H "Accept: application/json" \
-H "Client: 10553" \
-H "Authorization: Bearer {token}" \
-d '{"key":"et","pin":"eveniet"}'
const url = new URL(
"https://restapi.plusofon.ru/api/v1/flash-call/check"
);
let headers = {
"Content-Type": "application/json",
"Accept": "application/json",
"Client": "10553",
"Authorization": "Bearer {token}",
};
let body = {
"key": "et",
"pin": "eveniet"
}
fetch(url, {
method: "POST",
headers: headers,
body: body
})
.then(response => response.json())
.then(json => console.log(json));
$client = new \GuzzleHttp\Client();
$response = $client->post(
'https://restapi.plusofon.ru/api/v1/flash-call/check',
[
'headers' => [
'Content-Type' => 'application/json',
'Accept' => 'application/json',
'Client' => '10553',
'Authorization' => 'Bearer {token}',
],
'json' => [
'key' => 'et',
'pin' => 'eveniet',
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
import requests
import json
url = 'https://restapi.plusofon.ru/api/v1/flash-call/check'
payload = {
"key": "et",
"pin": "eveniet"
}
headers = {
'Content-Type': 'application/json',
'Accept': 'application/json',
'Client': '10553',
'Authorization': 'Bearer {token}'
}
response = requests.request('POST', url, headers=headers, json=payload)
response.json()
В ответе может возвращаться:
success
признак успешно выполненного запроса
message
сообщение об ошибке
Проверка прошла успешно:
{
"success": true
}
Ключ не найден:
{
"message": "key not found",
"code": 0
}
POST
api/v1/flash-call/call-to-auth
Метод позволяет получить специальный CallToAuth-номер для проверочного вызова от пользователя.
Для авторизации необходимо использовать
access_token
, полученный методом добавления аккаунта Flash Call .
Body
phone
string
⁎ проверяемый номер пользователя
hook_url
string
⁎ адрес Вашего обработчика, на который придёт вебхук с подтверждением после звонка пользователя
phone
— проверяемый номер пользователя
key
— ключ проверки
curl -X POST \
"https://restapi.plusofon.ru/api/v1/flash-call/call-to-auth" \
-H "Content-Type: application/json" \
-H "Accept: application/json" \
-H "Client: 10553" \
-H "Authorization: Bearer {token}" \
-d '{"phone":"79993332210","hook_url":"https://myserver.com/plusofon"}'
const url = new URL(
"https://restapi.plusofon.ru/api/v1/flash-call/call-to-auth"
);
let headers = {
"Content-Type": "application/json",
"Accept": "application/json",
"Client": "10553",
"Authorization": "Bearer {token}",
};
let body = {
"phone": "79993332210",
"hook_url": "https://myserver.com/plusofon"
}
fetch(url, {
method: "POST",
headers: headers,
body: body
})
.then(response => response.json())
.then(json => console.log(json));
$client = new \GuzzleHttp\Client();
$response = $client->post(
'https://restapi.plusofon.ru/api/v1/flash-call/call-to-auth',
[
'headers' => [
'Content-Type' => 'application/json',
'Accept' => 'application/json',
'Client' => '10553',
'Authorization' => 'Bearer {token}',
],
'json' => [
'phone' => '79993332210',
'hook_url' => 'https://myserver.com/plusofon',
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
import requests
import json
url = 'https://restapi.plusofon.ru/api/v1/flash-call/call-to-auth'
payload = {
"phone": "79993332210",
"hook_url": "https://myserver.com/plusofon"
}
headers = {
'Content-Type': 'application/json',
'Accept': 'application/json',
'Client': '10553',
'Authorization': 'Bearer {token}'
}
response = requests.request('POST', url, headers=headers, json=payload)
response.json()
В ответе возвращается:
key
ключ проверки
phone
CallToAuth-номер для проверочного вызова
Получен номер для проверки:
{
"data": {
"key": "1yugyrwvzZaLa9JewNVOABzVX",
"phone": "79993332210"
},
"success": true
}
Для контроля прохождения голосовых Flash-вызовов можно настроить адрес обработчика, на который будет приходить вебхук с информацией об успешности вызова.
Вебхук приходит только для голосовых Flash-вызовов, длительность которых более 5 секунд, и для которых выключен параметр совпадения пин-кода и номера ("same_pin_phone" = false
).
call_id
внутренний ИД вызова
direction
направление вызова
timestamp
дата и время вызова (в формате Unix-времени)
hook_event
тип вебхука (всегда "channel_answer"
)
account_id
внутренний ИД аккаунта
to
целевой телефонный номер
from
звонивший номер
key
ключ проверки
{
"call_id": "c3a3ba3c-48e1-fbe2450d8eec",
"direction": "inbound",
"timestamp": "1693584502",
"hook_event": "channel_answer",
"account_id": "b4e96f80abaa5afb9",
"bridge_id": "c31e884e-48e1-fbe2450d8eec",
"to": "79993332210",
"from": "79581001234",
"start": "1",
"finish": "0",
"main_hook": "0",
"key": "UBayrnkrkejEu0jmc9"
}
Вы можете отправить вызов на любой мобильный номер за исключением нескольких международных направлений:
Код направления | Страна |
---|---|
52 |
Мексика |
676 |
Тонго |
678 |
Вануату |
685 |
Западное Самоа |
675 |
Папуа Новая Гвинея |
674 |
Науру |
597 |
Суринам |
686 |
Кирибати |
509 |
Гаити |
683 |
Острава Ниуэ |
228 |
Того |
687 |
Новая Каледония |
682 |
Острова Кука |
690 |
Токелау |
220 |
Гамбия |