GMS API Съвместимост
SMSBAT поддържа слой за съвместимост с GMS API. Това ви позволява да мигрирате вашите съществуващи интеграции, предназначени за GMS, директно към SMSBAT, без да се налага да променяте вашите схеми за маршрутизиране на съобщения, структури на полезен товар или слушатели на обратно извикване.
Настройки на връзката
За да маршрутизирате заявки през SMSBAT, актуализирайте основния URL адрес и идентификационните данни за удостоверяване във вашата интеграция:
- Основен URL:
https://restapi.smsbat.com - Крайна точка:
POST /api/GMSMessage/send_message - Формат на заявката:
application/json - Удостоверяване: HTTP Basic Authentication (използва вашите идентификационни данни за SMSBAT API)
Параметри на заявката
API за съвместимост на GMS приема JSON обект със следните параметри от най-високо ниво:
| Параметър | Тип | Задължително | Описание |
|---|---|---|---|
phone_number | низ | Да | Телефонен номер на получателя в международен формат (напр. 380501234567). |
tag | низ | Да | Регистрирано име на подател/алфа име. |
channels | масив | Да | Списък с канали, които да опитате, в приоритетен ред. Поддържани стойности: viber, sms, push. Например ["viber", "sms"]. |
channel_options | обект | Да | Карта, съдържаща опции за всеки активен канал (вижте по-долу). |
extra_id | низ | Не | Вашият вътрешен идентификатор на съобщение от страна на клиента. |
callback_url | низ | Не | URL адрес на крайна точка във вашата система за получаване на обратни извиквания за статус на доставка. |
division_code | низ | Не | Незадължителен идентификатор на код на разделяне (по подразбиране main). |
Настройки на опциите на канала
Обектът channel_options съдържа специфични за канала конфигурации.
=== „Съобщение във Viber“
Използва се, когато `viber` е посочено в масива `channels`.
| Параметър | Тип | Задължително | Описание |
| :--- | :--- | :--- | :--- |
| `text` | низ | **Да** | Основен текст на съобщението. |
| `ttl` | цяло число | **Да** | Време за живот за секунди. |
| `img` | низ | Не | Обществен HTTPS URL адрес на изображението за показване. |
| `caption` | низ | Не | Текстов етикет на бутона. |
| `action` | низ | Не | Целеви URL адрес при щракване върху бутона. |
| `survey_options` | масив | Не | Масив от низове (2 до 5 елемента) за показване като опции за проучване. |
| `carousel_items` | масив | Не | Масив от слайд обекти за показване като въртележка на Viber (вижте структурата в раздела). |
**Пример за заявка във Viber:**
```json
{
"phone_number": "380501234567",
"tag": "MySender",
"channels": ["viber"],
"channel_options": {
"viber": {
"text": "Hello from SMSBAT!",
"ttl": 60,
"img": "https://www.example.com/image.png",
"caption": "Open",
"action": "https://www.example.com"
}
}
}
```
=== „Viber с резервен SMS“
Активира Viber съобщения с автоматичен резервен SMS, ако доставката на Viber е неуспешна в рамките на TTL.
**Пример за резервна заявка:**
```json
{
"phone_number": "380501234567",
"tag": "MySender",
"channels": ["viber", "sms"],
"channel_options": {
"viber": {
"text": "Your order is ready!",
"ttl": 60,
"caption": "Details",
"action": "https://www.example.com/order"
},
"sms": {
"text": "Your order is ready: https://www.example.com/order",
"alpha_name": "MySender",
"ttl": 60,
"ctr": false
}
}
}
```
Използва се, когато sms е в списъка в масива channels.
| Параметър | Тип | Задължително | Описание |
|---|---|---|---|
text | низ | Да | Основен текст на съобщението. |
alpha_name | низ | Да | Алфа име на изпращача. |
ttl | цяло число | Да | Време за живот за секунди. |
ctr | булево | Не | Активирайте проследяването на CTR при кликване върху връзки в текст (true/false). |
Пример за SMS заявка:
{
"phone_number": "380501234567",
"tag": "MySender",
"channels": ["sms"],
"channel_options": {
"sms": {
"text": "Your verification code is 1234",
"alpha_name": "MySender",
"ttl": 60,
"ctr": false
}
}
}
Формат на отговора
Крайната точка връща отговори във JSON формат с код за състояние HTTP 200 OK.
Успешен отговор
{
"MessageId": "6f0d5e28-7f3a-4df3-91a2-3d58d9e09b9a",
"ErrorCode": null,
"ErrorText": null
}
Отговори за грешка
Ако проверката или обработката са неуспешни, ще бъде върнат отговор за грешка с ненулево ErrorCode и подробно ErrorText.
{
"MessageId": "00000000-0000-0000-0000-000000000000",
"ErrorCode": 10221,
"ErrorText": "This type of Message is not supported by the system"
}
=== „Невалиден брой опции за анкета“
json { "MessageId": "00000000-0000-0000-0000-000000000000", "ErrorCode": 10221, "ErrorText": "There can be from 2 to 5 survey options." }
{
"MessageId": "00000000-0000-0000-0000-000000000000",
"ErrorCode": 400,
"ErrorText": "Cannot send to international number: alpha name 'ALPHA' is not registered."
}
Формат за доставка на обратно извикване
Ако callback_url е посочено в заявката, SMSBAT изпраща актуализации на състоянието на доставката като JSON POST полезен товар до вашата крайна точка.
Пример за заявка за обратно повикване
POST /your-callback-endpoint HTTP/1.1
Host: yoursystem.com
Content-Type: application/json
{
"number": "380501234567",
"time": 1719237600000,
"status": 2,
"substatus": 23,
"hyber_status": 23033,
"message_id": "6f0d5e28-7f3a-4df3-91a2-3d58d9e09b9a",
"extra_id": "ORDER-12345",
"sent_via": "viber",
"matching_template_id": 0
}
Описание на полетата за обратно извикване
| Поле | Тип | Описание |
|---|---|---|
number | низ | Телефонен номер на получателя. |
time | номер | Времево клеймо на събитието в Unix милисекунди. |
status | номер | Опростен идентификатор на състояние (вижте таблицата с кодове на състояние). |
substatus | номер | Подробен идентификатор на състоянието (вижте таблицата с кодове на подстатуси). |
hyber_status | номер | Подробен код за вътрешно състояние на SMSBAT (вижте таблицата за състояние на Hyber). |
message_id | низ | Идентификатор на SMSBAT съобщение (GUID), генериран при изпращане. |
extra_id | низ | ID от страна на клиента, предоставен в оригиналната заявка. |
sent_via | низ | Канал, обработил съобщението: viber, sms или rcs. |
matching_template_id | номер | Статус на съответствие на шаблона на Viber (където е приложимо). |
Съпоставяне на състоянието
1. Опростен статус (status)
| Код | Значение |
|---|---|
1 | Съобщението е прието или се доставя. |
2 | Съобщението е доставено. |
3 | Грешка при обработката или доставката. |
2. Подробно състояние (substatus)
| Код | Значение |
|---|---|
12 | Приет за обработка. |
23 | Доставено. |
24 | Видяно/прочетено. |
35 | Не е доставен в рамките на TTL (изтекъл). |
36 | Грешка при доставката. |
3. Тип канал (sent_via)
| Канал | Описание |
|---|---|
viber | Статус, произведен от Viber канал. |
sms | Статус, произведен от SMS канал. |
rcs | Статус, произведен от RCS канал. |
4. Подробно състояние на SMSBAT (hyber_status)
| Код | Канал | Статус | Подстатус | Значение |
|---|---|---|---|---|
| 23033 | viber | 2 | 23 | Съобщението във Viber е доставено. |
| 24013 | viber | 2 | 24 | Viber съобщение, прочетено от получателя (Seen). |
| 36013 | viber | 3 | 36 | Вътрешна грешка на Viber. |
| 36023 | viber | 3 | 36 | Невалиден или недостъпен ID на услугата Viber. |
| 36033 | viber | 3 | 36 | Невалидни данни за Viber. |
| 36037 | viber | 3 | 36 | URL адресът на изображение във Viber е твърде дълъг. |
| 36038 | viber | 3 | 36 | Невалиден URL адрес на изображение във Viber. |
| 36039 | viber | 3 | 36 | Текстът на Viber е твърде дълъг. |
| 36044 | viber | 3 | 36 | Празен текст във Viber. |
| 36053 | viber | 3 | 36 | Неподдържан тип съобщение във Viber. |
| 36063 | viber | 3 | 36 | Невалидни параметри на Viber. |
| 36073 | viber | 3 | 36 | Време за изчакване на доставчика на Viber. |
| 36083 | viber | 3 | 36 | Подателят на Viber е блокиран от получателя. |
| 36093 | viber | 3 | 36 | Получателят не е регистриран като потребител на Viber. |
| 36103 | viber | 3 | 36 | Не е намерено устройство с Android/iOS с поддръжка на Viber. |
| 36113 | viber | 3 | 36 | Неоторизиран IP адрес за изпращане на Viber. |
| 36123 | viber | 3 | 36 | Открито е дублирано съобщение във Viber. |
| 36143 | viber | 3 | 36 | Грешка при таксуване на Viber. |
| 36153 | viber | 3 | 36 | Съобщението е блокирано от черния списък на платформата. |
| 36163 | viber | 3 | 36 | Грешка при вътрешна обработка на платформата Viber. |
| 36173 | viber | 3 | 36 | Грешен или липсващ Viber етикет. |
| 36183 | viber | 3 | 36 | Невалидна TTL стойност на Viber. |
| 12011 | sms / rcs | 1 | 12 | SMS/RCS се приемат. |
| 36011 | sms / rcs | 1 | 12 | SMS/RCS на път. |
| 23011 | sms / rcs | 2 | 23 | Доставени SMS/RCS. |
| 35015 | sms / rcs | 3 | 35 | SMS/RCS е изтекъл (не е доставен в рамките на TTL). |
| 36021 | sms / rcs | 3 | 36 | SMS/RCS съобщението е изтрито. |
| 36031 | sms / rcs | 3 | 36 | SMS/RCS не може да бъде доставен. |
| 36041 | sms / rcs | 3 | 36 | Неизвестно състояние на доставка на SMS/RCS. |
| 36051 | sms / rcs | 3 | 36 | SMS/RCS съобщението е отхвърлено. |