GMS API suderinamumas
SMSBAT palaiko suderinamumo sluoksnį su GMS API. Tai leidžia perkelti esamas GMS integracijas tiesiai į SMSBAT, nekeičiant pranešimų maršruto schemų, naudingos apkrovos struktūrų ar atgalinio skambučio klausytojų.
Ryšio nustatymai
Norėdami nukreipti užklausas per SMSBAT, integruodami atnaujinkite bazinį URL ir autentifikavimo kredencialus:
– Pagrindinis URL: „https://restapi.smsbat.com“. – Galinis taškas: „POST /api/GMSMessage/send_message“. – Užklausos formatas: „application/json“.
- Autentifikavimas: HTTP pagrindinis autentifikavimas (naudojami jūsų SMSBAT API kredencialai)
Prašyti parametrų
GMS suderinamumo API priima JSON objektą su šiais aukščiausio lygio parametrais:
| Parametras | Tipas | Reikalingas | Aprašymas |
|---|---|---|---|
| ”telefono_numeris” | styga | Taip | Gavėjo telefono numeris tarptautiniu formatu (pvz., „380501234567“). |
| “žyma” | styga | Taip | Registruotas siuntėjo vardas / alfa vardas. |
kanalai | masyvas | Taip | Bandomų kanalų sąrašas prioriteto tvarka. Palaikomos reikšmės: „viber“, „sms“, „push“. Pvz., „[“viber”, “sms”]’. |
| „channel_options“ | objektas | Taip | Žemėlapis su kiekvieno aktyvaus kanalo parinktimis (žr. toliau). |
| „papildomas_id“ | styga | Ne | Jūsų vidinio kliento pranešimo ID. |
atskambinimo_url | styga | Ne | Galinio taško URL jūsų sistemoje, kad gautumėte pristatymo būsenos atgalinius skambučius. |
| „padalinio_kodas“ | styga | Ne | Pasirenkamas padalijimo kodo identifikatorius (numatytasis nustatymas yra „pagrindinis“). |
Kanalo parinkčių nustatymai
Objekte „channel_options“ yra kanalui būdingų konfigūracijų.
=== “Viber” pranešimas
Naudojama, kai „viber“ yra „kanalų“ masyve.
| Parametras | Tipas | Reikalingas | Aprašymas |
| :--- | :--- | :--- | :--- |
| "tekstas" | styga | **Taip** | Pranešimo tekstas. |
| `ttl` | sveikasis skaičius | **Taip** | Laikas gyventi per kelias sekundes. |
| "img" | styga | Ne | Rodytino vaizdo viešas HTTPS URL. |
| "antraštė" | styga | Ne | Mygtuko teksto etiketė. |
| "veiksmas" | styga | Ne | Paskirties URL spustelėjus mygtuką. |
| `survey_options` | masyvas | Ne | Eilučių masyvas (nuo 2 iki 5 elementų), kad būtų rodomos kaip apklausos parinktys. |
| "carousel_items" | masyvas | Ne | Skaidrių objektų masyvas, skirtas rodyti kaip „Viber“ karuselė (žr. struktūrą skirtuke). |
**Viber užklausos pavyzdys:**
```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 su SMS atsarginiu“
Įgalina „Viber“ pranešimų siuntimą su automatiniu SMS atsarginiu pranešimu, jei „Viber“ pristatymas nepavyksta TTL.
**Atsarginės užklausos pavyzdys:**
```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
}
}
}
```
Naudojama, kai „sms“ yra „kanalų“ masyve.
| Parametras | Tipas | Reikalingas | Aprašymas |
|---|---|---|---|
| ”tekstas” | styga | Taip | Pranešimo tekstas. |
| ”alfa_vardas” | styga | Taip | Siuntėjo alfa vardas. |
ttl | sveikasis skaičius | Taip | Laikas gyventi per kelias sekundes. |
| ”ctr” | loginis | Ne | Įgalinti teksto nuorodų PR paspaudimų stebėjimą („teisinga“/„klaidinga“). |
SMS užklausos pavyzdys:
{
"phone_number": "380501234567",
"tag": "MySender",
"channels": ["sms"],
"channel_options": {
"sms": {
"text": "Your verification code is 1234",
"alpha_name": "MySender",
"ttl": 60,
"ctr": false
}
}
}
=== „Viber karuselė“
Naudojamas braukiamoms vaizdo skaidrių kortelėms siųsti. Kiekviena skaidrė palaiko vaizdą, pavadinimą ir mygtukus.
**Karuselės užklausos pavyzdys:**
```json
{
"phone_number": "380501234567",
"tag": "MySender",
"channels": ["viber"],
"channel_options": {
"viber": {
"text": "Choose an offer",
"ttl": 60,
"carousel_items": [
{
"title": "Offer 1",
"image_url": "https://www.example.com/offer-1.png",
"primary_label": "Open",
"primary_url": "https://www.example.com/offer-1",
"secondary_label": "More",
"secondary_url": "https://www.example.com/offers"
},
{
"title": "Offer 2",
"image_url": "https://www.example.com/offer-2.png",
"primary_label": "Open",
"primary_url": "https://www.example.com/offer-2"
}
]
}
}
}
```
Naudojama, kai masyve kanalai yra „push“.
| Parametras | Tipas | Reikalingas | Aprašymas |
|---|---|---|---|
| ”pavadinimas” | styga | Taip | Tiesioginio pranešimo pavadinimo tekstas. |
| ”tekstas” | styga | Taip | Pranešimo tekstas. |
ttl | sveikasis skaičius | Taip | Laikas gyventi per kelias sekundes. |
| ”img” | styga | Ne | Rodytino vaizdo viešas HTTPS URL. |
| ”antraštė” | styga | Ne | Mygtuko teksto etiketė. |
| ”veiksmas” | styga | Ne | Paskirties URL spustelėjus mygtuką. |
| ”ctr” | loginis | Ne | Įgalinti paspaudimų stebėjimą. |
Push užklausos pavyzdys:
{
"phone_number": "380501234567",
"tag": "MySender",
"channels": ["push"],
"channel_options": {
"push": {
"title": "Order update",
"text": "Your order is ready for pickup!",
"ttl": 60,
"img": "https://www.example.com/push.png",
"caption": "Open",
"action": "https://www.example.com/order",
"ctr": false
}
}
}
Atsakymo formatas
Galutinis taškas pateikia atsakymus JSON formatu su būsenos kodu „HTTP 200 OK“.
Sėkmingas atsakymas
{
"MessageId": "6f0d5e28-7f3a-4df3-91a2-3d58d9e09b9a",
"ErrorCode": null,
"ErrorText": null
}
Klaidų atsakymai
Jei patvirtinimas arba apdorojimas nepavyks, bus grąžintas klaidos atsakas su ne nuliu „ErrorCode“ ir išsamiu „ErrorText“.
{
"MessageId": "00000000-0000-0000-0000-000000000000",
"ErrorCode": 10221,
"ErrorText": "This type of Message is not supported by the system"
}
Atšaukimo pristatymo formatas
Jei užklausoje buvo nurodytas „callback_url“, SMSBAT siunčia pristatymo būsenos naujinius kaip JSON POST naudingą apkrovą į jūsų galutinį tašką.
Atskambinimo užklausos pavyzdys
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
}
Atšaukimo laukų aprašymas
| Laukas | Tipas | Aprašymas |
|---|---|---|
| ”skaičius” | styga | Gavėjo telefono numeris. |
| ”laikas” | numeris | Įvykio laiko žyma Unix milisekundėmis. |
| ”būsena” | numeris | Supaprastintas būsenos identifikatorius (žr. Būsenos kodų lentelę). |
substatusas | numeris | Išsamus būsenos identifikatorius (žr. Subbūsenos kodų lentelę). |
| „hyber_status“ | numeris | Išsamus SMSBAT vidinės būsenos kodas (žr. Hyber Status lentelę). |
| „pranešimo_id“ | styga | SMSBAT pranešimo ID (GUID) sugeneruotas siunčiant. |
| „papildomas_id“ | styga | Kliento ID, pateiktas pirminėje užklausoje. |
| „išsiųsta_per“ | styga | Kanalas, kuris apdorojo pranešimą: „viber“, „sms“ arba „rcs“. |
matching_template_id | numeris | „Viber“ šablono atitikties būsena (jei taikoma). |
Būsenos atvaizdai
1. Supaprastinta būsena (“status”)
| Kodas | Reikšmė |
|---|---|
| ”1” | Pranešimas priimtas arba pristatomas. |
| ”2” | Pranešimas pristatytas. |
| ”3” | Apdorojimo arba pristatymo klaida. |
2. Išsami būsena (“substatus”)
| Kodas | Reikšmė |
|---|---|
| ”12” | Priimta apdoroti. |
| ”23” | Pristatyta. |
| ”24” | Pamatytas/skaitytas. |
| ”35” | Nepristatoma per TTL (baigęs galiojimo laikas). |
| “36” | Pristatymo klaida. |
3. Kanalo tipas (sent_via)
| Kanalas | Aprašymas |
|---|---|
viber | Būsena sukurta Viber kanalo. |
sms | Būsena sukurta SMS kanalu. |
| ”rcs” | Būsena sukurta RCS kanalo. |
4. Išsami SMSBAT būsena (“hyber_status”)
| Kodas | Kanalas | Būsena | Substatusas | Reikšmė |
|---|---|---|---|---|
| 23033 | viber | ”2" | "23” | Viber žinutė pristatyta. |
| 24013 | viber | ”2" | "24” | „Viber“ pranešimą perskaitė gavėjas (matytas). |
| 36013 | viber | ”3" | "36” | Viber vidinė klaida. |
| 36023 | viber | ”3" | "36” | Neteisingas arba nepasiekiamas Viber paslaugos ID. |
| 36033 | viber | ”3" | "36” | Netinkami „Viber“ naudingos apkrovos duomenys. |
| 36037 | viber | ”3" | "36” | Viber vaizdo URL per ilgas. |
| 36038 | viber | ”3" | "36” | Neteisingas Viber vaizdo URL. |
| 36039 | viber | ”3" | "36” | Viber tekstas per ilgas. |
| 36044 | viber | ”3" | "36” | Tuščias Viber tekstas. |
| 36053 | viber | ”3" | "36” | Nepalaikomas Viber pranešimo tipas. |
| 36063 | viber | ”3" | "36” | Netinkami Viber parametrai. |
| 36073 | viber | ”3" | "36” | „Viber“ teikėjo skirtasis laikas. |
| 36083 | viber | ”3" | "36” | „Viber“ siuntėją užblokavo gavėjas. |
| 36093 | viber | ”3" | "36” | Gavėjas nėra registruotas kaip Viber vartotojas. |
| 36103 | viber | ”3" | "36” | Nerasta „Android“ / „iOS“ įrenginių su „Viber“ palaikymu. |
| 36113 | viber | ”3" | "36” | Neteisėtas IP adresas Viber siuntimui. |
| 36123 | viber | ”3" | "36” | Aptiktas „Viber“ pranešimo dublikatas. |
| 36143 | viber | ”3" | "36” | Viber atsiskaitymo klaida. |
| 36153 | viber | ”3" | "36” | Pranešimą užblokavo platformos juodasis sąrašas. |
| 36163 | viber | ”3" | "36” | Viber platformos vidinė apdorojimo klaida. |
| 36173 | viber | ”3" | "36” | Neteisinga arba jos trūksta Viber etiketės. |
| 36183 | viber | ”3" | "36” | Netinkama Viber TTL vertė. |
| 12011 | „sms“ / „rcs“ | “1" | "12” | SMS/RCS priimta. |
| 36011 | „sms“ / „rcs“ | “1" | "12” | SMS/RCS pakeliui. |
| 23011 | „sms“ / „rcs“ | “2" | "23” | SMS/RCS pristatytas. |
| 35015 | „sms“ / „rcs“ | “3" | "35” | SMS / RCS galiojimo laikas pasibaigęs (nepristatomas per TTL). |
| 36021 | „sms“ / „rcs“ | “3" | "36” | SMS/RCS žinutė ištrinta. |
| 36031 | „sms“ / „rcs“ | “3" | "36” | SMS/RCS pristatyti negalima. |
| 36041 | „sms“ / „rcs“ | “3" | "36” | Nežinoma SMS/RCS pristatymo būsena. |
| 36051 | „sms“ / „rcs“ | “3" | "36” | SMS/RCS žinutė atmesta. |