Aller au contenu principal
DocumentationFlutter
Version 0.2.0Flutter 3.22.3 et Dart 3.4 ou versions ultérieures

Flutter SDK: Référence API

Flutter: Un pont typé vers les moteurs natifs iOS et Android partagés pour le framework mobile sélectionné.

Sur cette page

Configuration

DobroDeskFlutterClient

Obligatoire

La configuration du framework fournit l'identité de l'application et le périmètre du compte et obtient un jeton d'autorisation récent à courte durée de vie auprès du fournisseur d'identifiants de l'hôte. Les formes du jeton et du résultat suivent la signature de la plateforme affichée.

DobroDeskFlutterClient
DobroDeskFlutterClient({ required String integrationId, required String apiOrigin, required String accountScope, String? authorizationToken, Future<String> Function()? credentialProvider, String locale = 'en', Duration pollInterval = const Duration(seconds: 1), Map<String, Object?>? context, Map<String, DobroDeskHostActionHandler>? hostActions, MethodChannel? methodChannel, EventChannel? eventChannel })
Erreurs
  • invalid-config

Cycle de vie et conversation

DobroDeskFlutterClient

Crée le client et valide la configuration.

DobroDeskFlutterClient
new DobroDeskFlutterClient({ integrationId, apiOrigin, accountScope, authorizationToken?, credentialProvider? })

startSession

Démarre une conversation avec un premier message idempotent.

startSession
startSession(String message, { prefill?, idempotencyKey?, metadata?, timeZone?, turnstileToken?, startedAt? }): Future<DobroDeskSession>
Erreurs
  • network
  • field-invalid
  • idempotency-conflict
  • outbox-corrupt

resumeSession

Restaure l'état du compte ou une session serveur.

resumeSession
resumeSession(): Future<DobroDeskSession?>
Erreurs
  • network
  • session-expired
  • outbox-corrupt

refresh

Charge l'état actuel de la conversation.

refresh
refresh(): Future<DobroDeskSnapshot>
Erreurs
  • network
  • session-expired
  • message-rejected

waitForAssistant

Interroge avec un délai limité jusqu'à la fin du travail de l'assistant ou l'expiration de l'attente.

waitForAssistant
waitForAssistant({ timeout?, afterMessageCount? }): Future<DobroDeskSnapshot>
Erreurs
  • realtime-unavailable
  • network
  • session-expired

sendMessage

Envoie un message et renvoie son état de livraison.

sendMessage
sendMessage(String text, { String? idempotencyKey }): Future<DobroDeskAcceptedMessage>
Erreurs
  • network
  • idempotency-conflict
  • conversation-stale
  • rate-limited
  • message-rejected

flushOutbox

Rejoue les mutations en attente avec le corps et la clé d'origine.

flushOutbox
flushOutbox(): Future<List<DobroDeskAcceptedMessage>>
Erreurs
  • network
  • outbox-corrupt
  • session-expired

resetSession

Efface la session, le snapshot et les mutations en attente associés au compte.

resetSession
resetSession(): Future<void>
Erreurs
  • request-in-progress
  • outbox-corrupt

setAuthorizationToken

Fournit au pont natif le dernier jeton à courte durée de vie.

setAuthorizationToken
setAuthorizationToken(String token): Future<void>

logout

Termine la session et libère les fonctions optionnelles.

logout
logout(): Future<void>
Erreurs
  • outbox-corrupt

presentWidget

Présente le widget natif avec le contrat partagé.

presentWidget
presentWidget({ title?, subtitle?, appearance?, platform?, reduceMotion?, view?, articleId?, context?, hostActionIds? }): Future<void>

Paramètres

titleString?
Surcharges limitées pour les clés de texte partagées du widget.
subtitleString?
Surcharges limitées pour les clés de texte partagées du widget.
appearanceMap<String, Object?>?
Objet partagé appearance-v2: couleurs, typographie, mise en page et ombre dans les limites documentées.
platformMap<String, Object?>?
Surcharges propres à la plateforme pour la zone sûre, le clavier et la navigation dans le contrat de design partagé.
reduceMotionbool?Valeur par défaut: system
Par défaut, le système et les politiques natives d'accessibilité, d'énergie et de température sont suivis.
viewString?
Options de navigation native et de présentation du launcher ou du panneau web.
articleIdString?
Contexte JSON limité fourni aux actions d'hôte explicitement enregistrées.
contextMap<String, Object?>?
Contexte JSON limité fourni aux actions d'hôte explicitement enregistrées.
hostActionIdsList<String>?
Callbacks d'application autorisés pour les actions guidées du widget. Ils n'authentifient pas les requêtes réseau.
Erreurs
  • invalid-config
  • request-in-progress
  • field-invalid

closeWidget

Ferme la présentation native actuelle ou libère un hôte monté.

closeWidget
closeWidget(): Future<void>

events

S'abonne aux événements canoniques du SDK. Pour libérer l'écouteur, utilisez l'abonnement, le callback d'annulation ou l'abonnement au flux renvoyé par la plateforme.

events
events: Stream<DobroDeskEvent>

operations

Expose des opérations typées de formulaires, outils client, pièces jointes et commerce via le moteur natif.

operations
operations: DobroDeskOperations

submitForm

Envoie des valeurs limitées pour un formulaire de conversation fourni par le serveur. L'identifiant et les valeurs sont validés avant la requête native signée.

submitForm
operations.submitForm(String requestId, Map<String, Object?> values): Future<Object?>

Paramètres

requestIdStringObligatoire
Envoie des valeurs limitées pour un formulaire de conversation fourni par le serveur. L'identifiant et les valeurs sont validés avant la requête native signée.
valuesMap<String, Object?>Obligatoire
Envoie des valeurs limitées pour un formulaire de conversation fourni par le serveur. L'identifiant et les valeurs sont validés avant la requête native signée.
Renvoie
Future<Object?>
Erreurs
  • field-invalid
  • network
  • http
  • session-expired
  • message-rejected

requestClientTool

Demande un outil client autorisé, confirme son résultat ou lit son état. Les payloads sont plats, limités et refusent les noms de champs sensibles.

requestClientTool
operations.requestClientTool(input: DobroDeskClientToolRequest): Future<Object?>

Paramètres

inputDobroDeskClientToolRequestObligatoire
Demande un outil client autorisé, confirme son résultat ou lit son état. Les payloads sont plats, limités et refusent les noms de champs sensibles.
Renvoie
Future<Object?>
Erreurs
  • field-invalid
  • network
  • http
  • session-expired
  • not_found

completeClientTool

Demande un outil client autorisé, confirme son résultat ou lit son état. Les payloads sont plats, limités et refusent les noms de champs sensibles.

completeClientTool
operations.completeClientTool(input: DobroDeskClientToolResult): Future<Object?>

Paramètres

inputDobroDeskClientToolResultObligatoire
Demande un outil client autorisé, confirme son résultat ou lit son état. Les payloads sont plats, limités et refusent les noms de champs sensibles.
Renvoie
Future<Object?>
Erreurs
  • field-invalid
  • network
  • http
  • session-expired
  • not_found

clientToolStatus

Demande un outil client autorisé, confirme son résultat ou lit son état. Les payloads sont plats, limités et refusent les noms de champs sensibles.

clientToolStatus
operations.clientToolStatus(String callId): Future<Object?>

Paramètres

callIdStringObligatoire
Demande un outil client autorisé, confirme son résultat ou lit son état. Les payloads sont plats, limités et refusent les noms de champs sensibles.
Renvoie
Future<Object?>
Erreurs
  • field-invalid
  • network
  • http
  • session-expired
  • not_found

procedureAction

Fait progresser une action de procédure fournie par le serveur avec une clé d'idempotence et la révision attendue du workflow.

procedureAction
operations.procedureAction(input: DobroDeskProcedureAction): Future<Object?>

Paramètres

input.actionstart | answer | availability | select | calendar_date | back | confirm | declineObligatoire
Fait progresser une action de procédure fournie par le serveur avec une clé d'idempotence et la révision attendue du workflow.
input.valueStringObligatoire
Fait progresser une action de procédure fournie par le serveur avec une clé d'idempotence et la révision attendue du workflow.
input.idempotencyKeystring (16-128 characters)Obligatoire
Fait progresser une action de procédure fournie par le serveur avec une clé d'idempotence et la révision attendue du workflow.
input.procedureId / runId / expectedUpdatedAtString?
Fait progresser une action de procédure fournie par le serveur avec une clé d'idempotence et la révision attendue du workflow.
input.locale"en" | "uk" | "de" | "es"?
Locale du widget pour le contenu. Le web utilise auto par défaut; les bundles natifs prennent actuellement en, uk, de et es en charge.
input.stepId / parameterId / timeZoneString?
Fait progresser une action de procédure fournie par le serveur avec une clé d'idempotence et la révision attendue du workflow.
input.nativeCommerceUitrue?
Fait progresser une action de procédure fournie par le serveur avec une clé d'idempotence et la révision attendue du workflow.
Renvoie
Future<Object?>
Erreurs
  • field-invalid
  • network
  • http
  • session-expired
  • message-rejected
  • idempotency-conflict

attachmentIntents

Crée des intents d'envoi et téléverse les fichiers locaux sélectionnés dans les limites de taille, type, URI et politique du SDK.

attachmentIntents
operations.attachmentIntents(String messageId, List<DobroDeskAttachmentDescriptor> attachments): Future<Object?>

Paramètres

messageIdStringObligatoire
Crée des intents d'envoi et téléverse les fichiers locaux sélectionnés dans les limites de taille, type, URI et politique du SDK.
attachmentsDobroDeskAttachmentDescriptor[] (1-5; each up to 10 MiB)Obligatoire
Crée des intents d'envoi et téléverse les fichiers locaux sélectionnés dans les limites de taille, type, URI et politique du SDK.
Renvoie
Future<Object?>
Erreurs
  • field-invalid
  • network
  • http
  • session-expired
  • attachment_policy_failed
  • attachment_rate_limited

uploadAttachment

Crée des intents d'envoi et téléverse les fichiers locaux sélectionnés dans les limites de taille, type, URI et politique du SDK.

uploadAttachment
operations.uploadAttachment(DobroDeskUploadIntent intent, String fileUri, String mimeType): Future<Object?>

Paramètres

intentDobroDeskUploadIntentObligatoire
Crée des intents d'envoi et téléverse les fichiers locaux sélectionnés dans les limites de taille, type, URI et politique du SDK.
fileUriString (file:// or content:// URI)Obligatoire
Crée des intents d'envoi et téléverse les fichiers locaux sélectionnés dans les limites de taille, type, URI et politique du SDK.
mimeTypeStringObligatoire
Crée des intents d'envoi et téléverse les fichiers locaux sélectionnés dans les limites de taille, type, URI et politique du SDK.
Renvoie
Future<Object?>
Erreurs
  • field-invalid
  • network
  • http
  • session-expired
  • attachment_policy_failed
  • attachment_rate_limited

listOrders

Lit les données de commande et crée, confirme ou lit une proposition limitée d'annulation de commande Shopify.

listOrders
operations.listOrders({String? cursor, String? store}): Future<Object?>

Paramètres

query{String? cursor, String? store}
Lit les données de commande et crée, confirme ou lit une proposition limitée d'annulation de commande Shopify.
Renvoie
Future<Object?>
Erreurs
  • field-invalid
  • network
  • http
  • session-expired
  • commerce_identity_required
  • commerce_unavailable
  • shopify_reconnect_required
  • shopify_rate_limited

orderDetail

Lit les données de commande et crée, confirme ou lit une proposition limitée d'annulation de commande Shopify.

orderDetail
operations.orderDetail(String orderRef): Future<Object?>

Paramètres

orderRefStringObligatoire
Lit les données de commande et crée, confirme ou lit une proposition limitée d'annulation de commande Shopify.
Renvoie
Future<Object?>
Erreurs
  • field-invalid
  • network
  • http
  • session-expired
  • commerce_identity_required
  • commerce_unavailable
  • not_found

createCommerceProposal

Lit les données de commande et crée, confirme ou lit une proposition limitée d'annulation de commande Shopify.

createCommerceProposal
operations.createCommerceProposal({required String storeReference, required String orderReference, required String idempotencyKey}): Future<Object?>

Paramètres

storeReferenceStringObligatoire
Lit les données de commande et crée, confirme ou lit une proposition limitée d'annulation de commande Shopify.
orderReferenceStringObligatoire
Lit les données de commande et crée, confirme ou lit une proposition limitée d'annulation de commande Shopify.
idempotencyKeystring (16-128 characters)Obligatoire
Lit les données de commande et crée, confirme ou lit une proposition limitée d'annulation de commande Shopify.
Renvoie
Future<Object?>
Erreurs
  • field-invalid
  • network
  • http
  • session-expired
  • commerce_identity_required
  • commerce_unavailable
  • shopify_reconnect_required
  • shopify_rate_limited
  • idempotency-conflict

confirmCommerceProposal

Lit les données de commande et crée, confirme ou lit une proposition limitée d'annulation de commande Shopify.

confirmCommerceProposal
operations.confirmCommerceProposal(String proposalId, String idempotencyKey): Future<Object?>

Paramètres

proposalIdStringObligatoire
Lit les données de commande et crée, confirme ou lit une proposition limitée d'annulation de commande Shopify.
idempotencyKeystring (16-128 characters)Obligatoire
Lit les données de commande et crée, confirme ou lit une proposition limitée d'annulation de commande Shopify.
Renvoie
Future<Object?>
Erreurs
  • field-invalid
  • network
  • http
  • session-expired
  • commerce_identity_required
  • commerce_unavailable
  • shopify_reconnect_required
  • shopify_rate_limited
  • not_found
  • idempotency-conflict

commerceProposal

Lit les données de commande et crée, confirme ou lit une proposition limitée d'annulation de commande Shopify.

commerceProposal
operations.commerceProposal(String proposalId): Future<Object?>

Paramètres

proposalIdStringObligatoire
Lit les données de commande et crée, confirme ou lit une proposition limitée d'annulation de commande Shopify.
Renvoie
Future<Object?>
Erreurs
  • field-invalid
  • network
  • http
  • session-expired
  • commerce_identity_required
  • commerce_unavailable
  • not_found

DobroDeskClientToolRequest

Demande un outil client autorisé, confirme son résultat ou lit son état. Les payloads sont plats, limités et refusent les noms de champs sensibles.

DobroDeskClientToolRequest
{ toolName: String; basisMessageId: String; input: Map<String, Object?> }

DobroDeskClientToolResult

Demande un outil client autorisé, confirme son résultat ou lit son état. Les payloads sont plats, limités et refusent les noms de champs sensibles.

DobroDeskClientToolResult
{ callId: String; output: Map<String, Object?> }

DobroDeskAttachmentDescriptor

Crée des intents d'envoi et téléverse les fichiers locaux sélectionnés dans les limites de taille, type, URI et politique du SDK.

DobroDeskAttachmentDescriptor
{ clientId: String; fileName: String; mimeType: String; sizeBytes: int; kind: String (image|video|pdf|text) }

DobroDeskUploadIntent

Crée des intents d'envoi et téléverse les fichiers locaux sélectionnés dans les limites de taille, type, URI et politique du SDK.

DobroDeskUploadIntent
{ clientId: String; attachmentId: String; uploadUrl: String; uploadToken: String; expiresAt: String }

DobroDeskLoadingState

L'état de chargement partagé est idle, starting-session, loading-messages, sending-message, waiting-for-assistant, executing-action, reconnecting ou flushing-outbox.

DobroDeskLoadingState
"idle" | "starting-session" | "loading-messages" | "sending-message" | "waiting-for-assistant" | "executing-action" | "reconnecting" | "flushing-outbox"

DobroDeskEvent

Les événements natifs et des wrappers utilisent l'enveloppe partagée loading, session, snapshot, message accepté, erreur et session effacée.

DobroDeskEvent
loading(state: DobroDeskLoadingState) | session-cleared | session-started | snapshot | message-accepted | error | host-action-requested | host-action-cancelled

dispose

Arrête le travail des fonctions optionnelles et libère leurs ressources hôte.

dispose
dispose(): Future<void>

Présentation du widget

WidgetExperience (JSON schema)

Objet partagé appearance-v2: couleurs, typographie, mise en page et ombre dans les limites documentées.

WidgetExperience (JSON schema)
schemaVersion, locale, appearance, platformOverrides, presentation, reducedMotion, copy
Erreurs
  • field-invalid
  • unsupported

DobroDeskWidgetView

Présente le widget natif avec le contrat partagé.

DobroDeskWidgetView
DobroDeskWidgetView({ required DobroDeskFlutterClient client, NativeWidgetOptions options = const NativeWidgetOptions(), bool visible = true, onError?, errorBuilder? })

beginInlineWidget

Présente le widget natif avec le contrat partagé.

beginInlineWidget
beginInlineWidget(NativeWidgetOptions options, String ownerId): Future<void>
Erreurs
  • invalid-config
  • request-in-progress
  • field-invalid

mountInlineWidget

Présente le widget natif avec le contrat partagé.

mountInlineWidget
mountInlineWidget(String ownerId): Future<void>
Erreurs
  • invalid-config
  • request-in-progress
  • field-invalid

disposeInlineWidget

Ferme la présentation native actuelle ou libère un hôte monté.

disposeInlineWidget
disposeInlineWidget(String ownerId): Future<void>

NativeOperation (wrapper bridge)

Expose des opérations typées de formulaires, outils client, pièces jointes et commerce via le moteur natif.

NativeOperation (wrapper bridge)
operation: "complete-host-action" | "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"

complete-host-action (local bridge)

Les ponts de framework encodent la fin d'une action hôte via un pont natif local. Elle n'est pas envoyée comme une opération HTTP par le client natif direct.

complete-host-action (local bridge)
{ operation: "complete-host-action"; requestId: string; actionId: string; result: HostActionResult }

Paramètres

requestIdstringObligatoire
Callbacks d'application autorisés pour les actions guidées du widget. Ils n'authentifient pas les requêtes réseau.
actionIdstringObligatoire
Callbacks d'application autorisés pour les actions guidées du widget. Ils n'authentifient pas les requêtes réseau.
resultHostActionResultObligatoire
Callbacks d'application autorisés pour les actions guidées du widget. Ils n'authentifient pas les requêtes réseau.
Renvoie
JsonValue
Erreurs
  • field-invalid
  • session-expired
  • unsupported

Fonctionnalités optionnelles

attachVoice

Connecte la fonction vocale optionnelle installée par l'hôte.

attachVoice
attachVoice(DobroDeskVoicePort port): Future<DobroDeskVoiceFacade>
Erreurs
  • unsupported
  • invalid-config

voice

Contrôle une fonction vocale optionnelle installée par l'hôte: démarrage, arrêt, silencieux, barge-in et libération. Le widget web peut afficher une interface vocale, mais cette API du SDK contrôle uniquement un pont vocal fourni par l'hôte.

voice
voice: DobroDeskVoiceFacade?

voice lifecycle

Contrôle une fonction vocale optionnelle installée par l'hôte: démarrage, arrêt, silencieux, barge-in et libération. Le widget web peut afficher une interface vocale, mais cette API du SDK contrôle uniquement un pont vocal fourni par l'hôte.

voice lifecycle
start(): Future<void>; stop(): Future<void>; setMuted(bool muted): Future<void>; bargeIn(): Future<void>; dispose(): Future<void>
Erreurs
  • invalid-configuration
  • permission-denied
  • audio-unavailable
  • session-expired
  • realtime-unavailable
  • invalid-response
  • protocol-violation
  • stale-frame
  • queue-overloaded
  • cancelled
  • unsupported

push module (native only)

Décrit l'artefact push natif optionnel et l'enregistrement de l'hôte. Les wrappers de framework n'exportent pas de client push JavaScript ou Dart ; utilisez le module natif iOS ou Android.

push module (native only)
No JS/Dart wrapper export; use the iOS DobroDeskPush product or Android com.dobrodesk:dobrodesk-push:<version>.

Erreurs

DobroDeskException

Gérez les codes stables lisibles par machine et gardez les diagnostics du serveur hors de l'interface client.

DobroDeskException
DobroDeskException(String code, String message, { int? status, int? retryAfterSeconds, String? fieldId, String? requestId }); code: String
Erreurs
  • 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