Configuration
DobroDeskSdkConfig
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.
{ apiOrigin: string; integrationId: string; accountScope: string; locale?: SdkLocale; turnstileToken?: string; pollIntervalMs?: number; fetchImpl?: typeof fetch; credentialProvider: () => Promise<{ authorizationToken: string }>; hostActions?: HostActionHandlers; context?: JsonObject }- Erreurs
- invalid-config
Cycle de vie et conversation
DobroDeskReactNativeClient
Crée le client et valide la configuration.
new DobroDeskReactNativeClient(nativeModule, config: DobroDeskSdkConfig)createDobroDeskReactNativeClient
Crée le client et valide la configuration.
createDobroDeskReactNativeClient(config: DobroDeskSdkConfig): DobroDeskReactNativeClientstartSession
Démarre une conversation avec un premier message idempotent.
startSession(message: string, options?: Omit<SessionStartInput, 'message'>): Promise<Object>- Erreurs
- network
- field-invalid
- idempotency-conflict
- outbox-corrupt
resumeSession
Restaure l'état du compte ou une session serveur.
resumeSession(): Promise<Object | null>- Erreurs
- network
- session-expired
- outbox-corrupt
refresh
Charge l'état actuel de la conversation.
refresh(): Promise<Object>- 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(options?: Omit<WaitForAssistantOptions, 'pollIntervalMs'>): Promise<Object>- Erreurs
- realtime-unavailable
- network
- session-expired
sendMessage
Envoie un message et renvoie son état de livraison.
sendMessage(text: string, idempotencyKey?: string): Promise<Object>- 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(): Promise<ReadonlyArray<Object>>- Erreurs
- network
- outbox-corrupt
- session-expired
resetSession
Efface la session, le snapshot et les mutations en attente associés au compte.
resetSession(): Promise<void>- Erreurs
- request-in-progress
- outbox-corrupt
logout
Termine la session et libère les fonctions optionnelles.
logout(): Promise<void>- Erreurs
- outbox-corrupt
presentWidget
Présente le widget natif avec le contrat partagé.
presentWidget(options?: NativeWidgetOptions): Promise<void>Paramètres
localeSdkLocale?- 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.
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.
appearanceobject?- Objet partagé appearance-v2: couleurs, typographie, mise en page et ombre dans les limites documentées.
platformobject?- Surcharges propres à la plateforme pour la zone sûre, le clavier et la navigation dans le contrat de design partagé.
reduceMotionboolean?- Par défaut, le système et les politiques natives d'accessibilité, d'énergie et de température sont suivis.
viewhome | messages | help- 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.
hostActionIdsstring[]?- Callbacks d'application autorisés pour les actions guidées du widget. Ils n'authentifient pas les requêtes réseau.
contextJsonObject?- Contexte JSON limité fourni aux actions d'hôte explicitement enregistrées.
- Erreurs
- invalid-config
- request-in-progress
- field-invalid
closeWidget
Ferme la présentation native actuelle ou libère un hôte monté.
closeWidget(): Promise<void>subscribe
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.
subscribe(listener: (event: SdkEvent) => void): () => voidoperations
Expose des opérations typées de formulaires, outils client, pièces jointes et commerce via le moteur natif.
operations: DobroDeskRichOperationssubmitForm
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.
operations.submitForm(requestId: string, values: JsonObject): Promise<JsonValue>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.
valuesJsonObjectObligatoire- 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
- Promise<JsonValue>
- 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.
operations.requestClientTool(input: ClientToolRequest): Promise<JsonValue>Paramètres
inputClientToolRequestObligatoire- 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
- Promise<JsonValue>
- 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.
operations.completeClientTool(input: ClientToolResult): Promise<JsonValue>Paramètres
inputClientToolResultObligatoire- 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
- Promise<JsonValue>
- 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.
operations.clientToolStatus(callId: string): Promise<JsonValue>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
- Promise<JsonValue>
- 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.
operations.procedureAction(input: ProcedureActionInput): Promise<JsonValue>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
- Promise<JsonValue>
- 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.
operations.attachmentIntents(messageId: string, attachments: readonly AttachmentDescriptor[]): Promise<JsonValue>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.
attachmentsAttachmentDescriptor[] (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
- Promise<JsonValue>
- 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.
operations.uploadAttachment(intent: AttachmentUploadIntent, fileUri: string, mimeType: string): Promise<JsonValue>Paramètres
intentAttachmentUploadIntentObligatoire- 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
- Promise<JsonValue>
- 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.
operations.listOrders(query?: CommerceOrderQuery): Promise<JsonValue>Paramètres
queryCommerceOrderQuery- Lit les données de commande et crée, confirme ou lit une proposition limitée d'annulation de commande Shopify.
- Renvoie
- Promise<JsonValue>
- 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.
operations.orderDetail(orderRef: string): Promise<JsonValue>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
- Promise<JsonValue>
- 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.
operations.createCommerceProposal(input: CommerceProposalInput, idempotencyKey: string): Promise<JsonValue>Paramètres
inputCommerceProposalInputObligatoire- 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
- Promise<JsonValue>
- 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.
operations.confirmCommerceProposal(proposalId: string, idempotencyKey: string): Promise<JsonValue>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
- Promise<JsonValue>
- 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.
operations.commerceProposal(proposalId: string): Promise<JsonValue>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
- Promise<JsonValue>
- Erreurs
- field-invalid
- network
- http
- session-expired
- commerce_identity_required
- commerce_unavailable
- not_found
ClientToolRequest
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.
{ toolName: string; basisMessageId: string; input: ClientToolPayload }ClientToolResult
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.
{ callId: string; output: ClientToolPayload }AttachmentDescriptor
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.
{ clientId: string; fileName: string; mimeType: string; sizeBytes: number; kind: AttachmentKind }AttachmentUploadIntent
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.
{ clientId: string; attachmentId: string; uploadUrl: string; uploadToken: string; expiresAt: string }CommerceProposalInput
Lit les données de commande et crée, confirme ou lit une proposition limitée d'annulation de commande Shopify.
{ actionId: "shopify_order_cancel"; selection: { storeReference: string; orderReference: string; lineItems?: { lineItemReference: string; quantity: number }[] } }DobroDeskLoadingState
L'état de chargement partagé est idle, starting-session, loading-messages, sending-message, waiting-for-assistant, executing-action, reconnecting ou flushing-outbox.
"idle" | "starting-session" | "loading-messages" | "sending-message" | "waiting-for-assistant" | "executing-action" | "reconnecting" | "flushing-outbox"SdkEvent
Les événements natifs et des wrappers utilisent l'enveloppe partagée loading, session, snapshot, message accepté, erreur et session effacée.
loading(state: DobroDeskLoadingState) | session-cleared | session-started | snapshot | message-accepted | error | host-action-requested | host-action-cancelledPrésentation du widget
WidgetExperience
Objet partagé appearance-v2: couleurs, typographie, mise en page et ombre dans les limites documentées.
schemaVersion, locale, appearance, platformOverrides, presentation, reducedMotion, copy- Erreurs
- field-invalid
- unsupported
DobroDeskWidgetView
Présente le widget natif avec le contrat partagé.
<DobroDeskWidgetView client={client} options?: NativeWidgetOptions visible?: boolean style?: ViewStyle onError?: (error) => void loadingBuilder?: () => ReactNode errorBuilder?: (error, retry) => ReactNode />createInlineWidgetOwner
Présente le widget natif avec le contrat partagé.
createInlineWidgetOwner(): DobroDeskInlineWidgetOwnerprepareInlineWidget
Présente le widget natif avec le contrat partagé.
prepareInlineWidget(options?: NativeWidgetOptions, owner?: DobroDeskInlineWidgetOwner): Promise<{ config; widget; lease: DobroDeskInlineWidgetLease }>- Erreurs
- invalid-config
- request-in-progress
- field-invalid
releaseInlineWidget
Ferme la présentation native actuelle ou libère un hôte monté.
releaseInlineWidget(ownerOrLease?: DobroDeskInlineWidgetOwner | DobroDeskInlineWidgetLease): Promise<void>NativeOperation (wrapper bridge)
Expose des opérations typées de formulaires, outils client, pièces jointes et commerce via le moteur natif.
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.
{ 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(port: DobroDeskVoicePort): Promise<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: DobroDeskVoiceFacade | undefinedcreateReactNativeVoicePort
Connecte la fonction vocale optionnelle installée par l'hôte.
createReactNativeVoicePort(bridge): DobroDeskVoicePortvoice 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.
start(): Promise<void>; stop(): Promise<void>; setMuted(muted: boolean): Promise<void>; bargeIn(): Promise<void>; dispose(): Promise<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.
No JS/Dart wrapper export; use the iOS DobroDeskPush product or Android com.dobrodesk:dobrodesk-push:<version>.Erreurs
SdkErrorCode
Gérez les codes stables lisibles par machine et gardez les diagnostics du serveur hors de l'interface client.
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