GMS-API-Kompatibilität
SMSBAT unterstützt eine Kompatibilitätsschicht mit der GMS-API. Dadurch können Sie Ihre vorhandenen, für GMS entwickelten Integrationen direkt zu SMSBAT migrieren, ohne Ihre Nachrichtenroutingschemata, Nutzlaststrukturen oder Rückruf-Listener ändern zu müssen.
Verbindungseinstellungen
Um Anfragen über SMSBAT weiterzuleiten, aktualisieren Sie die Basis-URL und die Authentifizierungsdaten in Ihrer Integration:
- Basis-URL:
https://restapi.smsbat.com - Endpunkt:
POST /api/GMSMessage/send_message - Anfrageformat:
application/json - Authentifizierung: HTTP-Basisauthentifizierung (verwendet Ihre SMSBAT-API-Anmeldeinformationen)
Parameter anfordern
Die GMS-Kompatibilitäts-API akzeptiert ein JSON-Objekt mit den folgenden Parametern der obersten Ebene:
| Parameter | Geben Sie | ein Erforderlich | Beschreibung |
|---|---|---|---|
Telefonnummer |
Zeichenfolge | Ja | Telefonnummer des Empfängers im internationalen Format (z. B. „380501234567“). |
Tag |
Zeichenfolge | Ja | Registrierter Absendername/Alphaname. |
Kanäle |
Array | Ja | Liste der auszuprobierenden Kanäle in der Reihenfolge ihrer Priorität. Unterstützte Werte: „viber“, „sms“, „push“. Z. B. „[„viber“, „sms“]“. |
channel_options |
Objekt | Ja | Karte mit Optionen für jeden aktiven Kanal (siehe unten). |
extra_id |
Zeichenfolge | Nein | Ihre interne kundenseitige Nachrichten-ID. |
callback_url |
Zeichenfolge | Nein | Endpunkt-URL auf Ihrem System zum Empfangen von Rückrufen zum Lieferstatus. |
division_code |
Zeichenfolge | Nein | Optionaler Bereichscode-Bezeichner (standardmäßig „main“). |
Kanaloptionen-Einstellungen
Das Objekt „channel_options“ enthält kanalspezifische Konfigurationen.
=== „Viber-Nachricht“
Wird verwendet, wenn „viber“ im Array „channels“ aufgeführt ist.
| Parameter | Geben Sie | ein Erforderlich | Beschreibung |
| :--- | :--- | :--- | :--- |
| `Text` | Zeichenfolge | **Ja** | Nachrichtentext. |
| `ttl` | Ganzzahl | **Ja** | Time-To-Live in Sekunden. |
| `img` | Zeichenfolge | Nein | Öffentliche HTTPS-URL des anzuzeigenden Bildes. |
| `Beschriftung` | Zeichenfolge | Nein | Schaltflächentextbeschriftung. |
| „Aktion“ | Zeichenfolge | Nein | Ziel-URL, wenn auf die Schaltfläche geklickt wird. |
| `survey_options` | Array | Nein | Array von Zeichenfolgen (2 bis 5 Elemente), die als Umfrageoptionen angezeigt werden sollen. |
| `carousel_items` | Array | Nein | Array von Folienobjekten zur Anzeige als Viber-Karussell (siehe Struktur auf der Registerkarte). |
**Beispiel für eine Viber-Anfrage:**
```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 mit SMS-Fallback“
Ermöglicht Viber-Messaging mit einem automatischen SMS-Fallback, wenn die Viber-Zustellung innerhalb der TTL fehlschlägt.
**Beispiel für eine Fallback-Anfrage:**
```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
}
}
}
```
Wird verwendet, wenn „sms“ im Array „channels“ aufgeführt ist.
| Parameter | Geben Sie | ein Erforderlich | Beschreibung |
|---|---|---|---|
Text |
Zeichenfolge | Ja | Nachrichtentext. |
alpha_name |
Zeichenfolge | Ja | Alphaname des Absenders. |
ttl |
Ganzzahl | Ja | Time-To-Live in Sekunden. |
ctr |
boolescher Wert | Nein | Aktivieren Sie die CTR-Klickverfolgung für Links im Text („true“/„false“). |
Beispiel für eine SMS-Anfrage:
=== „Viber-Umfrage“
Wird zum Erstellen von Viber-Umfragen und Umfragen verwendet.
!!! Warnung
Die Viber-Umfragekonfiguration muss zwischen **2 und 5 Optionen** in „survey_options“ enthalten.
**Beispiel für eine Umfrageanfrage:**
```json
{
"phone_number": "380501234567",
"tag": "MySender",
"channels": ["viber"],
"channel_options": {
"viber": {
"text": "Please rate our service:",
"ttl": 60,
"survey_options": [
"Excellent",
"Good",
"Bad"
]
}
}
}
```
=== „Viber-Karussell“
Wird zum Versenden von wischbaren Bild-Diakarten verwendet. Jede Folie unterstützt Bilder, Titel und Schaltflächen.
**Beispiel für eine Karussell-Anfrage:**
```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"
}
]
}
}
}
```
=== „Push-Nachricht“
Wird verwendet, wenn „push“ im Array „channels“ aufgeführt ist.
| Parameter | Geben Sie | ein Erforderlich | Beschreibung |
| :--- | :--- | :--- | :--- |
| `Titel` | Zeichenfolge | **Ja** | Titeltext der Push-Benachrichtigung. |
| `Text` | Zeichenfolge | **Ja** | Nachrichtentext. |
| `ttl` | Ganzzahl | **Ja** | Time-To-Live in Sekunden. |
| `img` | Zeichenfolge | Nein | Öffentliche HTTPS-URL des anzuzeigenden Bildes. |
| `Beschriftung` | Zeichenfolge | Nein | Schaltflächentextbeschriftung. |
| „Aktion“ | Zeichenfolge | Nein | Ziel-URL, wenn auf die Schaltfläche geklickt wird. |
| `ctr` | boolescher Wert | Nein | Aktivieren Sie die Klickverfolgung. |
**Beispiel für eine Push-Anfrage:**
```json
{
"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
}
}
}
```
Antwortformat
Der Endpunkt gibt Antworten im JSON-Format mit dem Statuscode „HTTP 200 OK“ zurück.
Erfolgreiche Antwort
Fehlerantworten
Wenn die Validierung oder Verarbeitung fehlschlägt, wird eine Fehlerantwort mit einem „ErrorCode“ ungleich Null und einem detaillierten „ErrorText“ zurückgegeben.
=== „Nicht unterstützter Kanal/Option“
{
"MessageId": "00000000-0000-0000-0000-000000000000",
"ErrorCode": 10221,
"ErrorText": "This type of Message is not supported by the system"
}
=== „Ungültige Anzahl der Umfrageoptionen“
{
"MessageId": "00000000-0000-0000-0000-000000000000",
"ErrorCode": 10221,
"ErrorText": "There can be from 2 to 5 survey options."
}
=== „Nicht registrierter Alpha-Name“
{
"MessageId": "00000000-0000-0000-0000-000000000000",
"ErrorCode": 400,
"ErrorText": "Cannot send to international number: alpha name 'ALPHA' is not registered."
}
=== „Interner Verarbeitungsfehler“
{
"MessageId": "00000000-0000-0000-0000-000000000000",
"ErrorCode": 500,
"ErrorText": "Internal server error."
}
Rückruf-Übermittlungsformat
Wenn „callback_url“ in der Anfrage angegeben wurde, sendet SMSBAT Aktualisierungen des Lieferstatus als JSON POST-Nutzlast an Ihren Endpunkt.
Beispiel für eine Rückrufanfrage
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
}
Beschreibung der Rückruffelder
| Feld | Geben Sie | ein Beschreibung |
|---|---|---|
Nummer |
Zeichenfolge | Telefonnummer des Empfängers. |
| „Zeit“ | Nummer | Ereigniszeitstempel in Unix-Millisekunden. |
Status |
Nummer | Vereinfachte Statuskennung (siehe Statuscodetabelle). |
Unterstatus |
Nummer | Detaillierte Statuskennung (siehe Substatus-Codetabelle). |
hyber_status |
Nummer | Detaillierter SMSBAT-interner Statuscode (siehe Hyber-Statustabelle). |
message_id |
Zeichenfolge | SMSBAT-Nachrichten-ID (GUID), die beim Senden generiert wird. |
extra_id |
Zeichenfolge | Kundenseitige ID, die in der ursprünglichen Anfrage angegeben wurde. |
sent_via |
Zeichenfolge | Kanal, der die Nachricht verarbeitet hat: „viber“, „sms“ oder „rcs“. |
matching_template_id |
Nummer | Übereinstimmungsstatus der Viber-Vorlage (sofern zutreffend). |
Statuszuordnungen
1. Vereinfachter Status („Status“)
| Code | Bedeutung |
|---|---|
1 |
Nachricht angenommen oder zugestellt. |
2 |
Nachricht zugestellt. |
3 |
Verarbeitungs- oder Lieferfehler. |
2. Detaillierter Status („Substatus“)
| Code | Bedeutung |
|---|---|
12 |
Zur Bearbeitung angenommen. |
23 |
Geliefert. |
24 |
Gesehen/gelesen. |
35 |
Nicht innerhalb der TTL geliefert (abgelaufen). |
36 |
Lieferfehler. |
3. Kanaltyp („sent_via“)
| Kanal | Beschreibung |
|---|---|
viber |
Vom Viber-Kanal erstellter Status. |
| „SMS“ | Vom SMS-Kanal erzeugter Status. |
rcs |
Vom RCS-Kanal erzeugter Status. |
4. Detaillierter SMSBAT-Status („hyber_status“)
| Code | Kanal | Status | Unterstatus | Bedeutung |
|---|---|---|---|---|
| 23033 | viber |
2 |
23 |
Viber-Nachricht zugestellt. |
| 24013 | viber |
2 |
24 |
Viber-Nachricht vom Empfänger gelesen (Gesehen). |
| 36013 | viber |
3 |
36 |
Interner Viber-Fehler. |
| 36023 | viber |
3 |
36 |
Ungültige oder nicht verfügbare Viber-Dienst-ID. |
| 36033 | viber |
3 |
36 |
Ungültige Viber-Nutzlastdaten. |
| 36037 | viber |
3 |
36 |
Viber-Bild-URL zu lang. |
| 36038 | viber |
3 |
36 |
Ungültige Viber-Bild-URL. |
| 36039 | viber |
3 |
36 |
Viber-Text zu lang. |
| 36044 | viber |
3 |
36 |
Leerer Viber-Text. |
| 36053 | viber |
3 |
36 |
Nicht unterstützter Viber-Nachrichtentyp. |
| 36063 | viber |
3 |
36 |
Ungültige Viber-Parameter. |
| 36073 | viber |
3 |
36 |
Zeitüberschreitung beim Viber-Anbieter. |
| 36083 | viber |
3 |
36 |
Viber-Absender vom Empfänger blockiert. |
| 36093 | viber |
3 |
36 |
Der Empfänger ist nicht als Viber-Benutzer registriert. |
| 36103 | viber |
3 |
36 |
Kein Android/iOS-Gerät mit Viber-Unterstützung gefunden. |
| 36113 | viber |
3 |
36 |
Unautorisierte IP-Adresse für Viber-Versand. |
| 36123 | viber |
3 |
36 |
Doppelte Viber-Nachricht erkannt. |
| 36143 | viber |
3 |
36 |
Viber-Abrechnungsfehler. |
| 36153 | viber |
3 |
36 |
Nachricht durch Plattform-Blacklist blockiert. |
| 36163 | viber |
3 |
36 |
Interner Verarbeitungsfehler der Viber-Plattform. |
| 36173 | viber |
3 |
36 |
Falsches oder fehlendes Viber-Label. |
| 36183 | viber |
3 |
36 |
Ungültiger Viber-TTL-Wert. |
| 12011 | sms / rcs |
1 |
12 |
SMS/RCS akzeptiert. |
| 36011 | sms / rcs |
1 |
12 |
SMS/RCS unterwegs. |
| 23011 | sms / rcs |
2 |
23 |
SMS/RCS zugestellt. |
| 35015 | sms / rcs |
3 |
35 |
SMS/RCS abgelaufen (nicht innerhalb der TTL zugestellt). |
| 36021 | sms / rcs |
3 |
36 |
SMS/RCS-Nachricht gelöscht. |
| 36031 | sms / rcs |
3 |
36 |
SMS/RCS können nicht zugestellt werden. |
| 36041 | sms / rcs |
3 |
36 |
Unbekannter SMS/RCS-Zustellungsstatus. |
| 36051 | sms / rcs |
3 |
36 |
SMS/RCS-Nachricht abgelehnt. |