Help Center GMS API suderinamumas

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:

ParametrasTipasReikalingasAprašymas
”telefono_numeris”stygaTaipGavėjo telefono numeris tarptautiniu formatu (pvz., „380501234567“).
“žyma”stygaTaipRegistruotas siuntėjo vardas / alfa vardas.
kanalaimasyvasTaipBandomų kanalų sąrašas prioriteto tvarka. Palaikomos reikšmės: „viber“, „sms“, „push“. Pvz., „[“viber”, “sms”]’.
„channel_options“objektasTaipŽemėlapis su kiekvieno aktyvaus kanalo parinktimis (žr. toliau).
„papildomas_id“stygaNeJūsų vidinio kliento pranešimo ID.
atskambinimo_urlstygaNeGalinio taško URL jūsų sistemoje, kad gautumėte pristatymo būsenos atgalinius skambučius.
„padalinio_kodas“stygaNePasirenkamas 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.

ParametrasTipasReikalingasAprašymas
”tekstas”stygaTaipPranešimo tekstas.
”alfa_vardas”stygaTaipSiuntėjo alfa vardas.
ttlsveikasis skaičiusTaipLaikas gyventi per kelias sekundes.
”ctr”loginisNeĮ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“.

ParametrasTipasReikalingasAprašymas
”pavadinimas”stygaTaipTiesioginio pranešimo pavadinimo tekstas.
”tekstas”stygaTaipPranešimo tekstas.
ttlsveikasis skaičiusTaipLaikas gyventi per kelias sekundes.
”img”stygaNeRodytino vaizdo viešas HTTPS URL.
”antraštė”stygaNeMygtuko teksto etiketė.
”veiksmas”stygaNePaskirties URL spustelėjus mygtuką.
”ctr”loginisNeĮ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

LaukasTipasAprašymas
”skaičius”stygaGavėjo telefono numeris.
”laikas”numerisĮvykio laiko žyma Unix milisekundėmis.
”būsena”numerisSupaprastintas būsenos identifikatorius (žr. Būsenos kodų lentelę).
substatusasnumerisIšsamus būsenos identifikatorius (žr. Subbūsenos kodų lentelę).
„hyber_status“numerisIšsamus SMSBAT vidinės būsenos kodas (žr. Hyber Status lentelę).
„pranešimo_id“stygaSMSBAT pranešimo ID (GUID) sugeneruotas siunčiant.
„papildomas_id“stygaKliento ID, pateiktas pirminėje užklausoje.
„išsiųsta_per“stygaKanalas, kuris apdorojo pranešimą: „viber“, „sms“ arba „rcs“.
matching_template_idnumeris„Viber“ šablono atitikties būsena (jei taikoma).

Būsenos atvaizdai

1. Supaprastinta būsena (“status”)

KodasReikšmė
”1”Pranešimas priimtas arba pristatomas.
”2”Pranešimas pristatytas.
”3”Apdorojimo arba pristatymo klaida.

2. Išsami būsena (“substatus”)

KodasReikš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)

KanalasAprašymas
viberBūsena sukurta Viber kanalo.
smsBūsena sukurta SMS kanalu.
”rcs”Būsena sukurta RCS kanalo.

4. Išsami SMSBAT būsena (“hyber_status”)

KodasKanalasBūsenaSubstatusasReikšmė
23033viber”2""23”Viber žinutė pristatyta.
24013viber”2""24”„Viber“ pranešimą perskaitė gavėjas (matytas).
36013viber”3""36”Viber vidinė klaida.
36023viber”3""36”Neteisingas arba nepasiekiamas Viber paslaugos ID.
36033viber”3""36”Netinkami „Viber“ naudingos apkrovos duomenys.
36037viber”3""36”Viber vaizdo URL per ilgas.
36038viber”3""36”Neteisingas Viber vaizdo URL.
36039viber”3""36”Viber tekstas per ilgas.
36044viber”3""36”Tuščias Viber tekstas.
36053viber”3""36”Nepalaikomas Viber pranešimo tipas.
36063viber”3""36”Netinkami Viber parametrai.
36073viber”3""36”„Viber“ teikėjo skirtasis laikas.
36083viber”3""36”„Viber“ siuntėją užblokavo gavėjas.
36093viber”3""36”Gavėjas nėra registruotas kaip Viber vartotojas.
36103viber”3""36”Nerasta „Android“ / „iOS“ įrenginių su „Viber“ palaikymu.
36113viber”3""36”Neteisėtas IP adresas Viber siuntimui.
36123viber”3""36”Aptiktas „Viber“ pranešimo dublikatas.
36143viber”3""36”Viber atsiskaitymo klaida.
36153viber”3""36”Pranešimą užblokavo platformos juodasis sąrašas.
36163viber”3""36”Viber platformos vidinė apdorojimo klaida.
36173viber”3""36”Neteisinga arba jos trūksta Viber etiketės.
36183viber”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.