Отправка FLASHCALL#
Совет
Мы рекомендуем использовать канал SMS вместе с Flashcall для гарантированной доставки кода вашим пользователям.
Операторы связи могут блокировать часть отправленных звонков российским абонентам, в связи с этим уровень доставки Flashcall может снизиться.
Отправка FLASHCALL-сообщений#
POST https://direct.i-dgtl.ru/api/v1/message
Метод позволяет отправлять массив одиночных сообщений (от 1 до 1000)
Headers#
Name |
Type |
Description |
|---|---|---|
Authorization* |
string |
|
Content-Type* |
string |
|
Request Body#
Name |
Type |
Description |
|---|---|---|
channelType* |
string |
Канал отправки ( |
senderName* |
string |
Имя отправителя. Допускается любая строка. Звонок будет произведен с номера телефона, последние цифры которого являются кодом подтверждения |
destination* |
string |
Номер абонента |
content* |
string |
Числовой код, от 3 до 6 символов |
tags |
array |
Теги сообщения (массив строк). Каждый тег должен соответствовать выражению |
callbackUrl |
string |
Адрес для отправки callback |
callbackEvents |
array |
События, по которым будут отправлены callback (массив строк). При наличии |
ttl |
integer |
Время жизни сообщения в секундах. По истечении ttl сообщению присваивается финальный статус.
|
В случае успешного запроса возвращается ответ, в котором перечислены идентификаторы сообщений и коды результата. При значении errors = false гарантируется, что все переданные сообщения успешно созданы.
{
"errors": false,
"items": [
{
"messageUuid": "063474ec-a34f-4558-90c5-984395000004",
"code": 201
},
{
"messageUuid": "063564ec-a34f-4558-90c5-984395000005",
"code": 201
}
]
}
Использование невалидного токена / отсутствие заголовка авторизации.
{
"error": {
"code": 4012,
"msg": "Bad credentials"
}
}
{
"error": {
"code": 4010,
"msg": "Not Authenticated"
}
}
Использование неподходящего токена.
{
"error": {
"code": 4030,
"msg": "Access Denied"
}
}
Невалидные параметры в теле запроса; ниже приведены несколько примеров ответа.
{
"error": {
"code": 4220,
"msg": "Invalid content"
}
}
-----------------------------------------------------------------------------
{
"error": {
"code": 4220,
"msg": "Invalid msisdn"
}
}
Payment Required. Недостаточно средств на балансе.
{
"error": {
"code": 402,
"msg": "Insufficient funds"
}
}
Совет
Рекомендуемое время ожидания ответа: 70 секунд.
Как правило, ответ на запрос возвращается не более чем за несколько секунд, но таймаут величиной в 70 секунд позволяет гарантированно получить ответ на запрос, в том числе в ситуациях повышенной нагрузки.
Возможные варианты перечислений:
Параметр |
Варианты |
|---|---|
callbackEvents |
Пример запроса #
POST https://direct.i-dgtl.ru/api/v1/message
Authorization: Basic QWxhZGRpbjpvc...
Content-Type: application/json
[
{
"channelType": "FLASHCALL",
"senderName": "FLASHCALL",
"destination": "79818268484",
"content": "1234"
}
]
curl -X POST 'https://direct.i-dgtl.ru/api/v1/message' \
-H 'Content-Type: application/json' \
-H 'Authorization: Basic QWxhZGRpbjpvc...' \
-d '[{"channelType":"FLASHCALL","senderName":"FLASHCALL","destination":"79818268484","content":"1234"}]'
import requests
import json
url = "https://direct.i-dgtl.ru/api/v1/message"
payload = json.dumps([
{
"channelType": "FLASHCALL",
"senderName": "FLASHCALL",
"destination": "79818268484",
"content": "1234"
}
])
headers = {
'Content-Type': 'application/json'
}
response = requests.request("POST", url, headers=headers, data=payload)
print(response.text)
const myHeaders = new Headers();
myHeaders.append("Content-Type", "application/json");
const raw = JSON.stringify([
{
"channelType": "FLASHCALL",
"senderName": "FLASHCALL",
"destination": "79818268484",
"content": "1234"
}
]);
const requestOptions = {
method: "POST",
headers: myHeaders,
body: raw,
redirect: "follow"
};
fetch("https://direct.i-dgtl.ru/api/v1/message", requestOptions)
.then((response) => response.text())
.then((result) => console.log(result))
.catch((error) => console.error(error));
OkHttpClient client = new OkHttpClient().newBuilder()
.build();
MediaType mediaType = MediaType.parse("application/json");
RequestBody body = RequestBody.create(mediaType, "[\n {\n \"channelType\": \"FLASHCALL\",\n \"senderName\": \"FLASHCALL\",\n \"destination\": \"79818268484\",\n \"content\": \"1234\"\n }\n]");
Request request = new Request.Builder()
.url("https://direct.i-dgtl.ru/api/v1/message")
.method("POST", body)
.addHeader("Content-Type", "application/json")
.build();
Response response = client.newCall(request).execute();
<?php
$client = new Client();
$headers = [
'Content-Type' => 'application/json'
];
$body = '[
{
"channelType": "FLASHCALL",
"senderName": "FLASHCALL",
"destination": "79818268484",
"content": "1234"
}
]';
$request = new Request('POST', 'https://direct.i-dgtl.ru/api/v1/message', $headers, $body);
$res = $client->sendAsync($request)->wait();
echo $res->getBody();
package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://direct.i-dgtl.ru/api/v1/message"
method := "POST"
payload := strings.NewReader(`[
{
"channelType": "FLASHCALL",
"senderName": "FLASHCALL",
"destination": "79818268484",
"content": "1234"
}
]`)
client := &http.Client {
}
req, err := http.NewRequest(method, url, payload)
if err != nil {
fmt.Println(err)
return
}
req.Header.Add("Content-Type", "application/json")
res, err := client.Do(req)
if err != nil {
fmt.Println(err)
return
}
defer res.Body.Close()
body, err := io.ReadAll(res.Body)
if err != nil {
fmt.Println(err)
return
}
fmt.Println(string(body))
}
Совет
В примере указан минимальный набор параметров, который позволяет моментально отправить FLASHCALL-сообщение. Вы можете настроить коллбэки, добавить теги и внутренний идентификатор, используя опциональные параметры, описанные выше на данной странице.
Отправка конверсии FLASHCALL#
POST https://direct.i-dgtl.ru/api/v1/flashcall-conversion
Метод используется для того, чтобы сообщить о корректности введенного пользователем кода, отправленного в FLASHCALL-сообщении
Headers#
Name |
Type |
Description |
|---|---|---|
Authorization |
string |
|
Content-Type |
string |
|
Request Body#
Name |
Type |
Description |
|---|---|---|
messageUuid |
string |
Идентификатор flashcall-сообщения |
result |
string |
Результат ввода кода |
code |
string |
Код |
{
"errors": false,
"items": [
{
"messageUuid": "063474ec-a34f-4558-90c5-984395000004",
"code": 201
},
{
"messageUuid": "063564ec-a34f-4558-90c5-984395000005",
"code": 201
}
]
}
Возможные варианты перечислений:
Параметр |
Варианты |
|---|---|
result |
Совет
Передача конверсии помогает нам улучшать качество отправки FLASHCALL-сообщений
Пример запроса #
POST https://direct.i-dgtl.ru/api/v1/flashcall-conversion
Authorization: Bearer QWxhZGRpbjpvcGVuIHNlc2FtZQ==
Content-Type: application/json
[
{
"messageUuid": "063464ec-a34f-4558-90c5-984395000004",
"result": "NUMBER_VERIFIED",
"code": "7777"
}
]
curl -X POST 'https://direct.i-dgtl.ru/api/v1/flashcall-conversion' \
-H 'Content-Type: application/json' \
-H 'Authorization: Bearer QWxhZGRpbjpvcGVuIHNlc2FtZQ==' \
-d '[{"messageUuid":"063464ec-a34f-4558-90c5-984395000004","result":"NUMBER_VERIFIED","code":"7777"}]'
import requests
import json
url = "https://direct.i-dgtl.ru/api/v1/flashcall-conversion"
payload = json.dumps([
{
"messageUuid": "063464ec-a34f-4558-90c5-984395000004",
"result": "NUMBER_VERIFIED",
"code": "7777"
}
])
headers = {
'Content-Type': 'application/json'
}
response = requests.request("POST", url, headers=headers, data=payload)
print(response.text)
const myHeaders = new Headers();
myHeaders.append("Content-Type", "application/json");
const raw = JSON.stringify([
{
"messageUuid": "063464ec-a34f-4558-90c5-984395000004",
"result": "NUMBER_VERIFIED",
"code": "7777"
}
]);
const requestOptions = {
method: "POST",
headers: myHeaders,
body: raw,
redirect: "follow"
};
fetch("https://direct.i-dgtl.ru/api/v1/flashcall-conversion", requestOptions)
.then((response) => response.text())
.then((result) => console.log(result))
.catch((error) => console.error(error));
OkHttpClient client = new OkHttpClient().newBuilder()
.build();
MediaType mediaType = MediaType.parse("application/json");
RequestBody body = RequestBody.create(mediaType, "[\n {\n \"messageUuid\": \"063464ec-a34f-4558-90c5-984395000004\",\n \"result\": \"NUMBER_VERIFIED\",\n \"code\": \"7777\"\n }\n]");
Request request = new Request.Builder()
.url("https://direct.i-dgtl.ru/api/v1/flashcall-conversion")
.method("POST", body)
.addHeader("Content-Type", "application/json")
.build();
Response response = client.newCall(request).execute();
<?php
$client = new Client();
$headers = [
'Content-Type' => 'application/json'
];
$body = '[
{
"messageUuid": "063464ec-a34f-4558-90c5-984395000004",
"result": "NUMBER_VERIFIED",
"code": "7777"
}
]';
$request = new Request('POST', 'https://direct.i-dgtl.ru/api/v1/flashcall-conversion', $headers, $body);
$res = $client->sendAsync($request)->wait();
echo $res->getBody();
package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://direct.i-dgtl.ru/api/v1/flashcall-conversion"
method := "POST"
payload := strings.NewReader(`[
{
"messageUuid": "063464ec-a34f-4558-90c5-984395000004",
"result": "NUMBER_VERIFIED",
"code": "7777"
}
]`)
client := &http.Client {
}
req, err := http.NewRequest(method, url, payload)
if err != nil {
fmt.Println(err)
return
}
req.Header.Add("Content-Type", "application/json")
res, err := client.Do(req)
if err != nil {
fmt.Println(err)
return
}
defer res.Body.Close()
body, err := io.ReadAll(res.Body)
if err != nil {
fmt.Println(err)
return
}
fmt.Println(string(body))
}