Zum Hauptinhalt springen
DokumentationAndroid
Version 0.2.0Android API 26 oder höher

Android SDK: API-Referenz

Android: Native APIs für signierten Transport, Widget-UI-Status, Wiederholungen und dauerhafte Offline-Zustellung.

Auf dieser Seite

Konfiguration

apiOrigin

Erforderlich

Der API-Origin ist in der Produktion HTTPS. Native Clients erlauben HTTP auf localhost für die Entwicklung.

apiOrigin
URL | String

integrationId

Erforderlich

Die öffentliche Integrationskennung aus dem DobroDesk-Widget-Kanal.

integrationId
String

accountScope

Erforderlich

Ein stabiler Kunden- oder Kontoschlüssel, der dauerhaften Sitzungs- und Outbox-Zustand isoliert.

accountScope
String

locale

Standardwert: en

Widget-Locale für Inhalte. Web verwendet standardmäßig auto; native Widget-Bundles unterstützen derzeit en, uk, de und es.

locale
String = "en"

credentialProvider

Erforderlich

Eine Backend-Funktion für ein kurzlebiges signiertes Kunden-JWT. Das Signiergeheimnis bleibt außerhalb der App.

credentialProvider
() async throws -> String | suspend () -> String

turnstileToken

Ein optionales Turnstile-Token für Integrationen, die es benötigen.

turnstileToken
String?

pollInterval

Standardwert: 1s

Ein begrenztes Intervall zum Abfragen einer asynchronen Antwort des Assistenten.

pollInterval
TimeInterval | Duration = 1s

Lebenszyklus und Unterhaltung

DobroDeskClient

Erstellt den Client und prüft die Integrationskonfiguration.

DobroDeskClient
DobroDeskClient(configuration: DobroDeskConfiguration, transport: DobroDeskTransport = ..., outbox: DobroDeskDurableStateStore, attachmentStore: DobroDeskAttachmentStore? = ...)
Fehler
  • invalid-config
  • outbox-corrupt

subscribe

Abonniert kanonische SDK-Ereignisse. Zum Freigeben des Listeners verwenden Sie die von der Plattform gelieferte Subscription, den Abbruch-Callback oder die Stream-Subscription.

subscribe
subscribe(listener: (SdkEvent) -> Unit): () -> Unit

state getters

Liefert den aktuellen Widget-Status ohne Abonnement.

state getters
currentSession(), currentConfiguration(), currentWidgetVoiceSettings(), currentWidgetConfiguration(), currentWidgetNavigation(), currentWidgetContent(), currentSnapshot(), currentLoadingState(), shouldWaitForAssistant()

loadWidgetAppearance

Lädt das validierte Appearance- oder Content-Bundle für das native Widget.

loadWidgetAppearance
loadWidgetAppearance(): JsonObject suspend
Fehler
  • network
  • http
  • session-expired

loadWidgetContent

Lädt das validierte Appearance- oder Content-Bundle für das native Widget.

loadWidgetContent
loadWidgetContent(locale: String = configuration.locale): WidgetContentSnapshot suspend
Fehler
  • network
  • http
  • field-invalid

startSession

Startet eine Unterhaltung mit idempotenter erster Nachricht.

startSession
startSession(input: SessionStartInput): DobroDeskSession suspend
Fehler
  • network
  • field-invalid
  • idempotency-conflict
  • outbox-corrupt

resumeSession

Stellt den Kontostatus oder eine Serversitzung wieder her.

resumeSession
resumeSession(): DobroDeskSession? suspend
Fehler
  • network
  • session-expired
  • outbox-corrupt

restoreSession

Stellt einen akzeptierten Sitzungsnachweis wieder her und lädt dessen Snapshot.

restoreSession
restoreSession(restored: DobroDeskSession): ConversationSnapshot suspend
Fehler
  • session-expired
  • network

refresh

Lädt den aktuellen Unterhaltungsverlauf.

refresh
refresh(): ConversationSnapshot suspend
Fehler
  • network
  • session-expired
  • message-rejected

waitForAssistant

Fragt mit begrenztem Timing ab, bis die Arbeit des Assistenten abgeschlossen ist oder die Wartezeit endet.

waitForAssistant
waitForAssistant(timeout: Duration = Duration.ofSeconds(30), afterMessageCount: Int? = null): ConversationSnapshot suspend
Fehler
  • invalid-config
  • realtime-unavailable
  • network
  • session-expired

sendMessage

Sendet eine Nachricht und liefert ihren Lieferstatus.

sendMessage
sendMessage(input: MessageInput): AcceptedMessage suspend
Fehler
  • network
  • idempotency-conflict
  • conversation-stale
  • rate-limited
  • message-rejected

attachments

Sendet eine Nachricht und liefert ihren Lieferstatus.

attachments
sendMessageWithAttachments(input: MessageInput, attachments: List<DobroDeskAttachment>): AcceptedMessage suspend; uploadMessageAttachments(messageId: String, attachments: List<DobroDeskAttachment>): List<DobroDeskAttachmentUpload> suspend; retryPendingAttachmentSend(): AcceptedMessage suspend
Fehler
  • attachment_policy_failed
  • attachment_rate_limited
  • session-expired
  • outbox-corrupt

performOperation / performNativeOperation

Stellt typisierte Formular-, Client-Tool-, Anhang- und Commerce-Operationen über die native Engine bereit.

performOperation / performNativeOperation
performNativeOperation(requestJson: String, resolveFile: suspend (String, String) -> DobroDeskAttachmentSource): String
Fehler
  • field-invalid
  • unsupported
  • session-expired
  • http

NativeOperation

Liefert dekodiertes JSON aus der nativen Operationsbrücke. Behandeln Sie Validierungs-, Transport-, Ablauf- und Serverablehnungen ausdrücklich.

NativeOperation
operation: "request-client-tool" | "complete-client-tool" | "client-tool-status" | "submit-form" | "procedure-action" | "attachment-intents" | "upload-attachment" | "list-orders" | "order-detail" | "create-commerce-proposal" | "confirm-commerce-proposal" | "commerce-proposal"
Fehler
  • field-invalid
  • unsupported
  • session-expired
  • http

submit-form request

Übermittelt begrenzte Werte für ein vom Server bereitgestelltes Gesprächsformular. Anfragekennung und Werte werden vor der signierten nativen Anfrage geprüft.

submit-form request
{ operation: "submit-form"; requestId: string; values: JsonObject }

Parameter

requestIdstringErforderlich
Übermittelt begrenzte Werte für ein vom Server bereitgestelltes Gesprächsformular. Anfragekennung und Werte werden vor der signierten nativen Anfrage geprüft.
valuesJsonObjectErforderlich
Übermittelt begrenzte Werte für ein vom Server bereitgestelltes Gesprächsformular. Anfragekennung und Werte werden vor der signierten nativen Anfrage geprüft.
Rückgabewert
JsonValue
Fehler
  • field-invalid
  • network
  • http
  • session-expired
  • message-rejected

request-client-tool request

Fordert ein freigegebenes Client-Tool an, bestätigt sein Ergebnis oder liest seinen Status. Tool-Payloads sind flach, begrenzt und lehnen sensible Feldnamen ab.

request-client-tool request
{ operation: "request-client-tool"; input: ClientToolRequest }

Parameter

toolNamestringErforderlich
Fordert ein freigegebenes Client-Tool an, bestätigt sein Ergebnis oder liest seinen Status. Tool-Payloads sind flach, begrenzt und lehnen sensible Feldnamen ab.
basisMessageIdstringErforderlich
Fordert ein freigegebenes Client-Tool an, bestätigt sein Ergebnis oder liest seinen Status. Tool-Payloads sind flach, begrenzt und lehnen sensible Feldnamen ab.
inputClientToolPayloadErforderlich
Fordert ein freigegebenes Client-Tool an, bestätigt sein Ergebnis oder liest seinen Status. Tool-Payloads sind flach, begrenzt und lehnen sensible Feldnamen ab.
Rückgabewert
JsonValue
Fehler
  • field-invalid
  • network
  • http
  • session-expired
  • not_found

complete-client-tool request

Fordert ein freigegebenes Client-Tool an, bestätigt sein Ergebnis oder liest seinen Status. Tool-Payloads sind flach, begrenzt und lehnen sensible Feldnamen ab.

complete-client-tool request
{ operation: "complete-client-tool"; input: ClientToolResult }

Parameter

callIdstringErforderlich
Fordert ein freigegebenes Client-Tool an, bestätigt sein Ergebnis oder liest seinen Status. Tool-Payloads sind flach, begrenzt und lehnen sensible Feldnamen ab.
outputClientToolPayloadErforderlich
Fordert ein freigegebenes Client-Tool an, bestätigt sein Ergebnis oder liest seinen Status. Tool-Payloads sind flach, begrenzt und lehnen sensible Feldnamen ab.
Rückgabewert
JsonValue
Fehler
  • field-invalid
  • network
  • http
  • session-expired
  • not_found

client-tool-status request

Fordert ein freigegebenes Client-Tool an, bestätigt sein Ergebnis oder liest seinen Status. Tool-Payloads sind flach, begrenzt und lehnen sensible Feldnamen ab.

client-tool-status request
{ operation: "client-tool-status"; callId: string }

Parameter

callIdstringErforderlich
Fordert ein freigegebenes Client-Tool an, bestätigt sein Ergebnis oder liest seinen Status. Tool-Payloads sind flach, begrenzt und lehnen sensible Feldnamen ab.
Rückgabewert
JsonValue
Fehler
  • field-invalid
  • network
  • http
  • session-expired
  • not_found

procedure-action request

Führt eine serverseitige Verfahrensaktion mit Idempotenzschlüssel und erwarteter Workflow-Version fort.

procedure-action request
{ operation: "procedure-action"; input: ProcedureActionInput }

Parameter

actionstart | answer | availability | select | calendar_date | back | confirm | declineErforderlich
Führt eine serverseitige Verfahrensaktion mit Idempotenzschlüssel und erwarteter Workflow-Version fort.
valuestringErforderlich
Führt eine serverseitige Verfahrensaktion mit Idempotenzschlüssel und erwarteter Workflow-Version fort.
idempotencyKeystring (16-128 characters)Erforderlich
Führt eine serverseitige Verfahrensaktion mit Idempotenzschlüssel und erwarteter Workflow-Version fort.
procedureId / runId / expectedUpdatedAtstring?
Führt eine serverseitige Verfahrensaktion mit Idempotenzschlüssel und erwarteter Workflow-Version fort.
locale"en" | "uk" | "de" | "es"?
Widget-Locale für Inhalte. Web verwendet standardmäßig auto; native Widget-Bundles unterstützen derzeit en, uk, de und es.
stepId / parameterId / timeZonestring?
Führt eine serverseitige Verfahrensaktion mit Idempotenzschlüssel und erwarteter Workflow-Version fort.
nativeCommerceUitrue?
Führt eine serverseitige Verfahrensaktion mit Idempotenzschlüssel und erwarteter Workflow-Version fort.
Rückgabewert
JsonValue
Fehler
  • field-invalid
  • network
  • http
  • session-expired
  • message-rejected
  • idempotency-conflict

attachment-intents request

Erstellt Upload-Intents und lädt ausgewählte lokale Dateien innerhalb der SDK-Grenzen für Größe, Typ, URI und Richtlinie hoch.

attachment-intents request
{ operation: "attachment-intents"; messageId: string; attachments: AttachmentDescriptor[] }

Parameter

messageIdstringErforderlich
Erstellt Upload-Intents und lädt ausgewählte lokale Dateien innerhalb der SDK-Grenzen für Größe, Typ, URI und Richtlinie hoch.
attachmentsAttachmentDescriptor[] (1-5; each up to 10 MiB)Erforderlich
Erstellt Upload-Intents und lädt ausgewählte lokale Dateien innerhalb der SDK-Grenzen für Größe, Typ, URI und Richtlinie hoch.
Rückgabewert
JsonValue
Fehler
  • field-invalid
  • network
  • http
  • session-expired
  • attachment_policy_failed
  • attachment_rate_limited

upload-attachment request

Erstellt Upload-Intents und lädt ausgewählte lokale Dateien innerhalb der SDK-Grenzen für Größe, Typ, URI und Richtlinie hoch.

upload-attachment request
{ operation: "upload-attachment"; intent: AttachmentUploadIntent; fileUri: string; mimeType: string }

Parameter

intentAttachmentUploadIntentErforderlich
Erstellt Upload-Intents und lädt ausgewählte lokale Dateien innerhalb der SDK-Grenzen für Größe, Typ, URI und Richtlinie hoch.
fileUrifile:// or content:// URIErforderlich
Erstellt Upload-Intents und lädt ausgewählte lokale Dateien innerhalb der SDK-Grenzen für Größe, Typ, URI und Richtlinie hoch.
mimeTypestringErforderlich
Erstellt Upload-Intents und lädt ausgewählte lokale Dateien innerhalb der SDK-Grenzen für Größe, Typ, URI und Richtlinie hoch.
Rückgabewert
JsonValue
Fehler
  • field-invalid
  • network
  • http
  • session-expired
  • attachment_policy_failed
  • attachment_rate_limited

list-orders request

Liest Bestelldaten und erstellt, bestätigt oder liest einen begrenzten Shopify-Vorschlag zur Bestellstornierung.

list-orders request
{ operation: "list-orders"; query?: CommerceOrderQuery }

Parameter

query.cursorstring?
Liest Bestelldaten und erstellt, bestätigt oder liest einen begrenzten Shopify-Vorschlag zur Bestellstornierung.
query.storestring?
Liest Bestelldaten und erstellt, bestätigt oder liest einen begrenzten Shopify-Vorschlag zur Bestellstornierung.
Rückgabewert
JsonValue
Fehler
  • field-invalid
  • network
  • http
  • session-expired
  • commerce_identity_required
  • commerce_unavailable
  • shopify_reconnect_required
  • shopify_rate_limited

order-detail request

Liest Bestelldaten und erstellt, bestätigt oder liest einen begrenzten Shopify-Vorschlag zur Bestellstornierung.

order-detail request
{ operation: "order-detail"; orderRef: string }

Parameter

orderRefstringErforderlich
Liest Bestelldaten und erstellt, bestätigt oder liest einen begrenzten Shopify-Vorschlag zur Bestellstornierung.
Rückgabewert
JsonValue
Fehler
  • field-invalid
  • network
  • http
  • session-expired
  • commerce_identity_required
  • commerce_unavailable
  • not_found

create-commerce-proposal request

Liest Bestelldaten und erstellt, bestätigt oder liest einen begrenzten Shopify-Vorschlag zur Bestellstornierung.

create-commerce-proposal request
{ operation: "create-commerce-proposal"; input: CommerceProposalInput; idempotencyKey: string }

Parameter

input.actionId"shopify_order_cancel"Erforderlich
Liest Bestelldaten und erstellt, bestätigt oder liest einen begrenzten Shopify-Vorschlag zur Bestellstornierung.
input.selection.storeReferencestringErforderlich
Liest Bestelldaten und erstellt, bestätigt oder liest einen begrenzten Shopify-Vorschlag zur Bestellstornierung.
input.selection.orderReferencestringErforderlich
Liest Bestelldaten und erstellt, bestätigt oder liest einen begrenzten Shopify-Vorschlag zur Bestellstornierung.
input.selection.lineItems{ lineItemReference: string; quantity: number }[]?
Liest Bestelldaten und erstellt, bestätigt oder liest einen begrenzten Shopify-Vorschlag zur Bestellstornierung.
idempotencyKeystring (16-128 characters)Erforderlich
Liest Bestelldaten und erstellt, bestätigt oder liest einen begrenzten Shopify-Vorschlag zur Bestellstornierung.
Rückgabewert
JsonValue
Fehler
  • field-invalid
  • network
  • http
  • session-expired
  • commerce_identity_required
  • commerce_unavailable
  • shopify_reconnect_required
  • shopify_rate_limited
  • idempotency-conflict

confirm-commerce-proposal request

Liest Bestelldaten und erstellt, bestätigt oder liest einen begrenzten Shopify-Vorschlag zur Bestellstornierung.

confirm-commerce-proposal request
{ operation: "confirm-commerce-proposal"; proposalId: string; input: { confirmed: true }; idempotencyKey: string }

Parameter

proposalIdstringErforderlich
Liest Bestelldaten und erstellt, bestätigt oder liest einen begrenzten Shopify-Vorschlag zur Bestellstornierung.
idempotencyKeystring (16-128 characters)Erforderlich
Liest Bestelldaten und erstellt, bestätigt oder liest einen begrenzten Shopify-Vorschlag zur Bestellstornierung.
Rückgabewert
JsonValue
Fehler
  • field-invalid
  • network
  • http
  • session-expired
  • commerce_identity_required
  • commerce_unavailable
  • shopify_reconnect_required
  • shopify_rate_limited
  • not_found
  • idempotency-conflict

commerce-proposal request

Liest Bestelldaten und erstellt, bestätigt oder liest einen begrenzten Shopify-Vorschlag zur Bestellstornierung.

commerce-proposal request
{ operation: "commerce-proposal"; proposalId: string }

Parameter

proposalIdstringErforderlich
Liest Bestelldaten und erstellt, bestätigt oder liest einen begrenzten Shopify-Vorschlag zur Bestellstornierung.
Rückgabewert
JsonValue
Fehler
  • field-invalid
  • network
  • http
  • session-expired
  • commerce_identity_required
  • commerce_unavailable
  • not_found

NativeOperationBridgeResult

Liefert dekodiertes JSON aus der nativen Operationsbrücke. Behandeln Sie Validierungs-, Transport-, Ablauf- und Serverablehnungen ausdrücklich.

NativeOperationBridgeResult
{ valueJson: string }
Rückgabewert
JsonValue
Fehler
  • http

HostActionResult

Freigegebene Anwendungs-Callbacks für geführte Widget-Aktionen. Sie authentifizieren keine Netzwerkanfragen.

HostActionResult
{ ok: boolean; status: "acknowledged" | "completed" | "failed"; data?: JsonValue; code?: string; retryable?: boolean }

ClientToolRequest

Fordert ein freigegebenes Client-Tool an, bestätigt sein Ergebnis oder liest seinen Status. Tool-Payloads sind flach, begrenzt und lehnen sensible Feldnamen ab.

ClientToolRequest
{ toolName: string; basisMessageId: string; input: ClientToolPayload }

ClientToolResult

Fordert ein freigegebenes Client-Tool an, bestätigt sein Ergebnis oder liest seinen Status. Tool-Payloads sind flach, begrenzt und lehnen sensible Feldnamen ab.

ClientToolResult
{ callId: string; output: ClientToolPayload }

ProcedureActionInput

Führt eine serverseitige Verfahrensaktion mit Idempotenzschlüssel und erwarteter Workflow-Version fort.

ProcedureActionInput
{ action: "start" | "answer" | "availability" | "select" | "calendar_date" | "back" | "confirm" | "decline"; value: string; idempotencyKey: string; procedureId?: string; locale?: "en" | "uk" | "de" | "es"; runId?: string; expectedUpdatedAt?: string; stepId?: string; parameterId?: string; timeZone?: string; nativeCommerceUi?: true }

AttachmentDescriptor

Erstellt Upload-Intents und lädt ausgewählte lokale Dateien innerhalb der SDK-Grenzen für Größe, Typ, URI und Richtlinie hoch.

AttachmentDescriptor
{ clientId: string; fileName: string; mimeType: string; sizeBytes: number; kind: "image" | "video" | "pdf" | "text" }

AttachmentUploadIntent

Erstellt Upload-Intents und lädt ausgewählte lokale Dateien innerhalb der SDK-Grenzen für Größe, Typ, URI und Richtlinie hoch.

AttachmentUploadIntent
{ clientId: string; attachmentId: string; uploadUrl: string; uploadToken: string; expiresAt: string }

CommerceOrderQuery

Liest Bestelldaten und erstellt, bestätigt oder liest einen begrenzten Shopify-Vorschlag zur Bestellstornierung.

CommerceOrderQuery
{ cursor?: string; store?: string }

CommerceProposalInput

Liest Bestelldaten und erstellt, bestätigt oder liest einen begrenzten Shopify-Vorschlag zur Bestellstornierung.

CommerceProposalInput
{ actionId: "shopify_order_cancel"; selection: { storeReference: string; orderReference: string; lineItems?: { lineItemReference: string; quantity: number }[] } }

requestAttachmentIntents

Erstellt Upload-Intents und lädt ausgewählte lokale Dateien innerhalb der SDK-Grenzen für Größe, Typ, URI und Richtlinie hoch.

requestAttachmentIntents
requestAttachmentIntents(messageId: String, attachments: List<DobroDeskAttachment>) suspend -> List<DobroDeskAttachmentIntent>
Fehler
  • attachment_policy_failed
  • session-expired
  • network
  • http

uploadAttachment

Erstellt Upload-Intents und lädt ausgewählte lokale Dateien innerhalb der SDK-Grenzen für Größe, Typ, URI und Richtlinie hoch.

uploadAttachment
uploadAttachment(intent: DobroDeskAttachmentIntent, source: DobroDeskAttachmentSource) suspend -> DobroDeskAttachmentUpload
Fehler
  • attachment_policy_failed
  • session-expired
  • network
  • http

downloadAttachment

Erstellt Upload-Intents und lädt ausgewählte lokale Dateien innerhalb der SDK-Grenzen für Größe, Typ, URI und Richtlinie hoch.

downloadAttachment
downloadAttachment(downloadUrl: String, destination: OutputStream) suspend -> BinaryDownloadResponse
Fehler
  • attachment_policy_failed
  • session-expired
  • network
  • http

canDownloadAttachment

Erstellt Upload-Intents und lädt ausgewählte lokale Dateien innerhalb der SDK-Grenzen für Größe, Typ, URI und Richtlinie hoch.

canDownloadAttachment
canDownloadAttachment(downloadUrl: String): Boolean

requestClientTool

Fordert ein freigegebenes Client-Tool an, bestätigt sein Ergebnis oder liest seinen Status. Tool-Payloads sind flach, begrenzt und lehnen sensible Feldnamen ab.

requestClientTool
requestClientTool(requestInput: DobroDeskClientToolRequest) suspend -> DobroDeskClientToolResponse
Fehler
  • field-invalid
  • network
  • http
  • session-expired
  • not_found

completeClientTool

Fordert ein freigegebenes Client-Tool an, bestätigt sein Ergebnis oder liest seinen Status. Tool-Payloads sind flach, begrenzt und lehnen sensible Feldnamen ab.

completeClientTool
completeClientTool(result: DobroDeskClientToolResult) suspend -> DobroDeskClientToolResponse
Fehler
  • field-invalid
  • network
  • http
  • session-expired
  • not_found

clientToolStatus

Fordert ein freigegebenes Client-Tool an, bestätigt sein Ergebnis oder liest seinen Status. Tool-Payloads sind flach, begrenzt und lehnen sensible Feldnamen ab.

clientToolStatus
clientToolStatus(callId: String) suspend -> DobroDeskClientToolResponse
Fehler
  • field-invalid
  • network
  • http
  • session-expired
  • not_found

submitConversationForm

Übermittelt begrenzte Werte für ein vom Server bereitgestelltes Gesprächsformular. Anfragekennung und Werte werden vor der signierten nativen Anfrage geprüft.

submitConversationForm
submitConversationForm(requestId: String, values: Map<String, JsonElement>) suspend -> Unit
Fehler
  • field-invalid
  • network
  • http
  • session-expired

performProcedureAction

Führt eine serverseitige Verfahrensaktion mit Idempotenzschlüssel und erwarteter Workflow-Version fort.

performProcedureAction
performProcedureAction(action: DobroDeskProcedureActionRequest) suspend -> Unit
Fehler
  • field-invalid
  • network
  • http
  • session-expired
  • message-rejected
  • idempotency-conflict

loadCommerceOrders

Liest Bestelldaten und erstellt, bestätigt oder liest einen begrenzten Shopify-Vorschlag zur Bestellstornierung.

loadCommerceOrders
loadCommerceOrders(storeReference: String? = null, cursor: String? = null) suspend -> JsonElement?
Fehler
  • network
  • http
  • session-expired
  • commerce_identity_required
  • commerce_unavailable
  • shopify_reconnect_required
  • shopify_rate_limited

loadCommerceOrderDetail

Liest Bestelldaten und erstellt, bestätigt oder liest einen begrenzten Shopify-Vorschlag zur Bestellstornierung.

loadCommerceOrderDetail
loadCommerceOrderDetail(orderReference: String) suspend -> JsonElement?
Fehler
  • field-invalid
  • network
  • http
  • session-expired
  • commerce_identity_required
  • commerce_unavailable
  • not_found

createCommerceProposal

Liest Bestelldaten und erstellt, bestätigt oder liest einen begrenzten Shopify-Vorschlag zur Bestellstornierung.

createCommerceProposal
createCommerceProposal(input: JsonObject, idempotencyKey: String) suspend -> JsonElement?
Fehler
  • field-invalid
  • network
  • http
  • session-expired
  • commerce_identity_required
  • commerce_unavailable
  • shopify_reconnect_required
  • shopify_rate_limited
  • idempotency-conflict

confirmCommerceProposal

Liest Bestelldaten und erstellt, bestätigt oder liest einen begrenzten Shopify-Vorschlag zur Bestellstornierung.

confirmCommerceProposal
confirmCommerceProposal(proposalId: String, idempotencyKey: String) suspend -> JsonElement?
Fehler
  • field-invalid
  • network
  • http
  • session-expired
  • commerce_identity_required
  • commerce_unavailable
  • shopify_reconnect_required
  • shopify_rate_limited
  • not_found
  • idempotency-conflict

commerceProposal

Liest Bestelldaten und erstellt, bestätigt oder liest einen begrenzten Shopify-Vorschlag zur Bestellstornierung.

commerceProposal
commerceProposal(proposalId: String) suspend -> JsonElement?
Fehler
  • field-invalid
  • network
  • http
  • session-expired
  • commerce_identity_required
  • commerce_unavailable
  • not_found

flushOutbox

Wiederholt ausstehende Mutationen mit unverändertem Inhalt und Schlüssel.

flushOutbox
flushOutbox(): List<AcceptedMessage> suspend
Fehler
  • network
  • outbox-corrupt
  • session-expired

resetSession

Löscht die kontobezogene Sitzung, den Snapshot und ausstehende Mutationen.

resetSession
resetSession() suspend
Fehler
  • request-in-progress
  • outbox-corrupt

Widget-Darstellung

WidgetExperience

Das gemeinsame appearance-v2-Objekt mit Farben, Typografie, Layout und Schatten innerhalb der dokumentierten Grenzen.

WidgetExperience
schemaVersion, locale, appearance, platformOverrides, presentation, reducedMotion, copy
Fehler
  • field-invalid
  • unsupported

reducedMotion

Standardmäßig folgt die App der Systemeinstellung sowie den nativen Energiespar- und Thermalrichtlinien.

reducedMotion
system | always

WidgetLocaleCopies.forLocale

Lädt eine integrierte native Karte für die Haupttexte des Widgets. Der Katalog prüft den gemeinsamen Textvertrag und enthält derzeit en, uk, de und es; abgeleitete Verfahrens-, Rollen- und Validierungstexte sind getrennt.

WidgetLocaleCopies.forLocale
WidgetLocaleCopies.forLocale(locale: String): Map<String, String>
Fehler
  • field-invalid

WidgetCopy(values)

Erstellt oder liest die validierten gemeinsamen Widget-Texte. Unbekannte, fehlende, leere oder zu lange Werte werden vor der Darstellung abgelehnt.

WidgetCopy(values)
WidgetCopy(values: Map<String, String>): WidgetCopy
Fehler
  • field-invalid

WidgetCopy.requiredKeys

Erstellt oder liest die validierten gemeinsamen Widget-Texte. Unbekannte, fehlende, leere oder zu lange Werte werden vor der Darstellung abgelehnt.

WidgetCopy.requiredKeys
Set<String>

WidgetCopy.text

Erstellt oder liest die validierten gemeinsamen Widget-Texte. Unbekannte, fehlende, leere oder zu lange Werte werden vor der Darstellung abgelehnt.

WidgetCopy.text
WidgetCopy.text(key: String): String
Fehler
  • field-invalid

WidgetExperience.decodeAndResolve

Dekodiert und löst den gemeinsamen Designvertrag mit Plattform- und Textüberschreibungen sowie dem Systemstatus für weniger Bewegung des Hosts auf.

WidgetExperience.decodeAndResolve
WidgetExperience.decodeAndResolve(data: String, platform: String, osReducedMotion: Boolean, localeCopy: Map<String, String>): WidgetExperience

Parameter

dataStringErforderlich
Dekodiert und löst den gemeinsamen Designvertrag mit Plattform- und Textüberschreibungen sowie dem Systemstatus für weniger Bewegung des Hosts auf.
platformStringErforderlich
Dekodiert und löst den gemeinsamen Designvertrag mit Plattform- und Textüberschreibungen sowie dem Systemstatus für weniger Bewegung des Hosts auf.
osReducedMotionBooleanErforderlich
Dekodiert und löst den gemeinsamen Designvertrag mit Plattform- und Textüberschreibungen sowie dem Systemstatus für weniger Bewegung des Hosts auf.
localeCopyMap<String, String>Erforderlich
Dekodiert und löst den gemeinsamen Designvertrag mit Plattform- und Textüberschreibungen sowie dem Systemstatus für weniger Bewegung des Hosts auf.
Rückgabewert
WidgetExperience
Fehler
  • field-invalid
  • unsupported

WidgetExperience.resolve

Dekodiert und löst den gemeinsamen Designvertrag mit Plattform- und Textüberschreibungen sowie dem Systemstatus für weniger Bewegung des Hosts auf.

WidgetExperience.resolve
WidgetExperience.resolve(input: WidgetExperienceInput, platform: String, osReducedMotion: Boolean, localeCopy: Map<String, String>): WidgetExperience

Parameter

inputWidgetExperienceInputErforderlich
Dekodiert und löst den gemeinsamen Designvertrag mit Plattform- und Textüberschreibungen sowie dem Systemstatus für weniger Bewegung des Hosts auf.
platformStringErforderlich
Dekodiert und löst den gemeinsamen Designvertrag mit Plattform- und Textüberschreibungen sowie dem Systemstatus für weniger Bewegung des Hosts auf.
osReducedMotionBooleanErforderlich
Dekodiert und löst den gemeinsamen Designvertrag mit Plattform- und Textüberschreibungen sowie dem Systemstatus für weniger Bewegung des Hosts auf.
localeCopyMap<String, String>Erforderlich
Dekodiert und löst den gemeinsamen Designvertrag mit Plattform- und Textüberschreibungen sowie dem Systemstatus für weniger Bewegung des Hosts auf.
Rückgabewert
WidgetExperience
Fehler
  • field-invalid
  • unsupported

DobroDeskWidgetBridgePresenter.present

Zeigt das native Widget mit dem gemeinsamen Widget-Vertrag.

DobroDeskWidgetBridgePresenter.present
present(activity: Activity, client: DobroDeskClient, options: JsonObject = {}): DobroDeskWidgetBridgePresenter
Fehler
  • request-in-progress
  • invalid-config
  • field-invalid
  • unsupported

close / detach

Schließt die aktuelle native Darstellung oder gibt einen gemounteten Host frei.

close / detach
close(): Unit; detach(): Unit

DobroDeskWidgetBridgePresenter.createEmbedded

Zeigt das native Widget mit dem gemeinsamen Widget-Vertrag.

DobroDeskWidgetBridgePresenter.createEmbedded
suspend fun createEmbedded(activity: Activity, client: DobroDeskClient, options: JsonObject = {}): DobroDeskWidgetEmbeddedHandle
Fehler
  • request-in-progress
  • invalid-config
  • field-invalid
  • unsupported

DobroDeskWidgetEmbeddedHandle

Optionen für native Navigation sowie die Darstellung des Web-Launchers oder Panels.

DobroDeskWidgetEmbeddedHandle
view: DobroDeskWidgetView; isOpen: Boolean; setVisible(Boolean); close(): Unit

Optionale Funktionen

voiceFactory

Installiert oder entfernt die optionale native Sprachfabrik für Widget-Darstellungen.

voiceFactory
DobroDeskWidgetBridgePresenter.installVoiceFactory(factory); uninstallVoiceFactory()
Fehler
  • unsupported
  • invalid-config

voice lifecycle

Steuert eine optionale, vom Host installierte Sprachfunktion: Start, Stopp, Stummschaltung, Barge-in und Freigabe. Das Browser-Widget kann eine Sprachoberfläche anzeigen, aber diese SDK-API steuert nur eine vom Host bereitgestellte Sprachbrücke.

voice lifecycle
start(), stop(), setMuted(), bargeIn(), dispose()
Fehler
  • invalid-configuration
  • permission-denied
  • audio-unavailable
  • session-expired
  • realtime-unavailable
  • invalid-response
  • protocol-violation
  • stale-frame
  • queue-overloaded
  • cancelled
  • unsupported

push

Beschreibt das optionale native Push-Artefakt und die Host-Registrierung. Framework-Wrapper exportieren keinen JavaScript- oder Dart-Push-Client; verwenden Sie das native iOS- oder Android-Modul.

push
iOS: DobroDeskPush product; Android: com.dobrodesk:dobrodesk-push:<version>

Fehler

SdkErrorCode

Behandeln Sie stabile maschinenlesbare Codes und halten Sie Serverdiagnosen aus der Kundenoberfläche fern.

SdkErrorCode
invalid-config | network | http | integration-disabled | integration-paused | origin-not-allowed | turnstile-required | turnstile-failed | request-in-progress | idempotency-conflict | conversation-limit-reached | rate-limited | payload-too-large | field-invalid | conversation-stale | session-expired | realtime-unavailable | message-rejected | outbox-corrupt | unsupported | ATTACHMENT_POLICY_FAILED | ATTACHMENT_RATE_LIMITED | ACTION_IDENTITY_REQUIRED | COMMERCE_IDENTITY_REQUIRED | COMMERCE_UNAVAILABLE | SHOPIFY_RECONNECT_REQUIRED | SHOPIFY_RATE_LIMITED | NOT_FOUND