Aller au contenu principal
DocumentationReact Native
Version 0.2.0React Native 0.76 à moins de 0.88

React Native SDK: Référence API

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

Sur cette page

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.

DobroDeskSdkConfig
{ 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.

DobroDeskReactNativeClient
new DobroDeskReactNativeClient(nativeModule, config: DobroDeskSdkConfig)

createDobroDeskReactNativeClient

Crée le client et valide la configuration.

createDobroDeskReactNativeClient
createDobroDeskReactNativeClient(config: DobroDeskSdkConfig): DobroDeskReactNativeClient

startSession

Démarre une conversation avec un premier message idempotent.

startSession
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
resumeSession(): Promise<Object | null>
Erreurs
  • network
  • session-expired
  • outbox-corrupt

refresh

Charge l'état actuel de la conversation.

refresh
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
waitForAssistant(options?: Omit<WaitForAssistantOptions, 'pollIntervalMs'>): Promise<Object>
Erreurs
  • realtime-unavailable
  • network
  • session-expired

sendMessage

Envoie un message et renvoie son état de livraison.

sendMessage
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
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
resetSession(): Promise<void>
Erreurs
  • request-in-progress
  • outbox-corrupt

setAuthorizationToken

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

setAuthorizationToken
setAuthorizationToken(token: string): Promise<void>

logout

Termine la session et libère les fonctions optionnelles.

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

presentWidget

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

presentWidget
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
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
subscribe(listener: (event: SdkEvent) => void): () => void

operations

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

operations
operations: DobroDeskRichOperations

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(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.

requestClientTool
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.

completeClientTool
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.

clientToolStatus
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.

procedureAction
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.

attachmentIntents
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.

uploadAttachment
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.

listOrders
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.

orderDetail
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.

createCommerceProposal
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.

confirmCommerceProposal
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.

commerceProposal
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.

ClientToolRequest
{ 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.

ClientToolResult
{ 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.

AttachmentDescriptor
{ 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.

AttachmentUploadIntent
{ 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.

CommerceProposalInput
{ 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.

DobroDeskLoadingState
"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.

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

Présentation du widget

WidgetExperience

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

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

DobroDeskWidgetView

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

DobroDeskWidgetView
<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
createInlineWidgetOwner(): DobroDeskInlineWidgetOwner

prepareInlineWidget

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

prepareInlineWidget
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
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.

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(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
voice: DobroDeskVoiceFacade | undefined

createReactNativeVoicePort

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

createReactNativeVoicePort
createReactNativeVoicePort(bridge): DobroDeskVoicePort

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(): 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.

push module (native only)
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.

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