Integra la chat di Amazon Connect in un'applicazione mobile - Amazon Connect

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

Integra la chat di Amazon Connect in un'applicazione mobile

Questo argomento spiega come creare un'interfaccia utente di chat Amazon Connect personalizzata nella tua applicazione mobile. Ciò richiede l'utilizzo del proprio back-end di chat. È inoltre necessario utilizzare Amazon Connect StartChatContactAPIper avviare un contatto e il Participant Service APIs per gestire la partecipazione alla chat.

Per le applicazioni iOS, consigliamo di utilizzare Amazon Connect Chat SDK per iOS. Gestisce la logica della chat lato client e WebSocket. Per ulteriori informazioni, consulta Amazon Connect Chat SDK per iOS.

Nota

StartChatContactAPIRichiede la AWS firma della versione 4 di Signature. Pertanto, le richieste iniziali devono essere inoltrate tramite il back-end della chat personale. APILe chiamate successive ad Amazon Connect Participant Service (ACPS) possono essere gestite direttamente dall'applicazione mobile.

Workflow di integrazione

Il diagramma seguente mostra il flusso di programmazione tra un cliente che utilizza un'app mobile e un agente. Il testo numerato nel diagramma corrisponde al testo numerato sotto l'immagine.

Diagramma che mostra il flusso del programma di chat Amazon Connect.

Nel diagramma:

  1. Quando un cliente avvia una chat nell'app per dispositivi mobili, l'app invia una richiesta ad Amazon Connect utilizzando il StartChatContactAPI. Ciò richiede parametri specifici, come l'APIendpoint e, ad IDs esempio, l'istanza e il flusso di contatti per autenticare e avviare la chat.

  2. StartChatContactAPIInteragisce con il sistema di back-end per ottenere un token partecipante e un ID di contatto che fungono da identificatori univoci per la sessione di chat.

  3. Il backend dell'app utilizza il token del partecipante e l'ID di contatto per comunicare con Amazon Connect, configurando la sessione di chat del cliente.

  4. Il partecipante Amazon Connect SDK viene attivato utilizzando il token del partecipante, preparando l'app per la chat.

  5. Il partecipante SDK utilizza i dettagli della sessione per stabilire una linea di comunicazione sicura con Amazon Connect.

  6. Amazon Connect risponde fornendo un messaggio WebSocket URL tramite il PartecipanteSDK. L'app lo utilizza URL per creare una WebSocket connessione per la messaggistica in tempo reale.

  7. Amazon Connect assegna un agente di supporto alla chat in base al flusso di contatti e al profilo di routing.

  8. I messaggi dell'agente arrivano tramite la WebSocket connessione. L'app mobile WebSocket ascolta i messaggi ricevuti e visualizzati dall'agente e i messaggi inviati ai clienti.

Prerequisiti

È necessario disporre dei seguenti prerequisiti per integrare la chat di Amazon Connect con un'app mobile:

Installa le librerie

Inizi il processo di integrazione installando le librerie per iOS e Android. È necessario installare entrambi i set di librerie.

  • iOS: vai al aws-sdk-iosrepository su GitHub e installa quanto segue:

    pod 'AWSCore' pod 'AWSConnectParticipant' pod 'Starscream', '~> 4.0'
  • Android: vai al aws-sdk-androidrepository su GitHub e installa quanto segue:

    implementation("com.amazonaws:aws-android-sdk-core:2.73.0") implementation("com.amazonaws:aws-android-sdk-connectparticipant:2.73.0")

Configura le credenziali AWS

Dopo aver installato entrambi i set di librerie, ti registri con Amazon Connect Service e Amazon Connect Participant Service. A tale scopo, nei file Config di ogni sistema operativo, utilizzate AWS le vostre credenziali e sostituite i secretKey valori accessKey and con stringhe vuote (“”) come mostrato negli esempi seguenti.

Importante

È necessario specificare la regione in cui si esegue il test.

  • iOS: da utilizzare AWSStaticCredentialsProvider per la registrazione ad Amazon Connect Service e Participant Service.

    private let config = Config() let credentials = AWSStaticCredentialsProvider(accessKey: "", secretKey: "") let participantService = AWSServiceConfiguration(region: config.region, credentialsProvider: credentials)! AWSConnectParticipant.register(with: participantService, forKey: "") connectParticipantClient = AWSConnectParticipant.init(forKey: "")
  • Android: inizializza AmazonConnectParticipantAsyncClient e imposta la regione.

    private var connectParticipantClient: AmazonConnectParticipantAsyncClient = AmazonConnectParticipantAsyncClient() private val chatConfiguration = Config init { connectParticipantClient.setRegion(Region.getRegion(chatConfiguration.region)) }
Nota

È possibile scaricare i file Config da. GitHub È necessario modificare entrambi i file Config.

Avvia una chat

Successivamente, è necessario integrare il StartChatContactAPIfornito da Amazon Connect. APIInizia la conversazione registrando l'intenzione del cliente di chattare con un agente.

Nota

Per distribuire una funzione StartChatContact Lambda, usa CloudFront il modello su. GitHub

Per iOS e Android, la StartChatContact API chiamata richiede diverse informazioni:

  • InstanceId: l'identificatore dell'istanza Amazon Connect.

  • ContactFlowId: L'identificatore del flusso di contatti per gestire la chat.

  • ParticipantDetails: Informazioni sul partecipante, ad esempio il nome visualizzato del cliente.

  • Attributes: informazioni aggiuntive sul contatto che possono essere utili per instradare o gestire la chat all'interno di Amazon Connect.

Importante

È necessario utilizzare AWS Signature Version 4 (SigV4) per firmare la chiamata. API Il processo SigV4 aggiunge informazioni di autenticazione alle AWS API richieste inviate tramite. HTTP Per i client mobili, consigliamo di eseguire la procedura di firma sul lato server. La tua app mobile invia una richiesta al tuo server, che quindi firma la richiesta e la inoltra ad Amazon Connect. Questo aiuta a proteggere le tue AWS credenziali.

Per iOS:

func startChatSession(displayName: String, completion: @escaping (Result<StartChatResponse, Error>) -> Void) { // Your back end server will handle SigV4 signing and make the API call to Amazon Connect // Use the completion handler to process the response or error }

Per Android:

// Make a network call to your back end server suspend fun startChatSession(displayName: String): StartChatResponse { // Your back end server will handle SigV4 signing if needed and make the // API call to Amazon Connect // Handle the response or error accordingly }

Creare una connessione tra i partecipanti

Si utilizzano i dettagli ricevuti da una StartChatContactAPIchiamata per creare una connessione tra i partecipanti. Quindi chiami Amazon Connect Participant ServiceSDK, che restituisce il WebSocket URL necessario per stabilire la connessione.

L'esempio seguente mostra come stabilire una connessione per iOS:

// Swift code snippet for iOS participant connection setup /// Creates the participant's connection. https://docs.aws.amazon.com/connect-participant/latest/APIReference/API_CreateParticipantConnection.html /// - Parameter: participantToken: The ParticipantToken as obtained from StartChatContact API response. func createParticipantConnection() { let createParticipantConnectionRequest = AWSConnectParticipantCreateParticipantConnectionRequest() createParticipantConnectionRequest?.participantToken = self.participantToken createParticipantConnectionRequest?.types = ["WEBSOCKET", "CONNECTION_CREDENTIALS"] connectParticipantClient? .createParticipantConnection (createParticipantConnectionRequest!) .continueWith(block: { (task) -> Any? in self.connectionToken = task.result!.connectionCredentials!.connectionToken self.websocketUrl = task.result!.websocket!.url return nil } ).waitUntilFinished() }

L'esempio seguente mostra come stabilire una connessione per Android:

// Kotlin code snippet for Android participant connection setup /// Creates the participant's connection. https://docs.aws.amazon.com/connect-participant/latest/APIReference/API_CreateParticipantConnection.html /// - Parameter: participantToken: The ParticipantToken as obtained from StartChatContact API response. fun createParticipantConnection( _participantToken: String, handler: AsyncHandler<CreateParticipantConnectionRequest, CreateParticipantConnectionResult> ) { val createParticipantConnectionRequest = CreateParticipantConnectionRequest().apply { setType(listOf("WEBSOCKET", "CONNECTION_CREDENTIALS")) participantToken = _participantToken } connectParticipantClient.createParticipantConnectionAsync( createParticipantConnectionRequest, handler ) }

Usa WebSocket le connessioni

Usa il Partecipante SDK WebSocket URL per ottenere una connessione alla chat.

  • Per implementare WebSocket la gestione, utilizzate soluzioni esistenti o implementate le vostre.

  • Per gestire messaggi ed eventi Websocket, implementa la tua soluzione o utilizza le nostre soluzioni per iOS e Android.

  • Assicurati di coprire tutti i tipi di messaggi ed eventi:

    • caso typing = "application/vnd.amazonaws.connect.event.typing"

    • caso messageDelivered = "application/vnd.amazonaws.connect.event.message.delivered"

    • caso messageRead = "application/vnd.amazonaws.connect.event.message.read"

    • caso metaData = "application/vnd.amazonaws.connect.event.message.metadata"

    • caso joined = "application/vnd.amazonaws.connect.event.participant.joined"

    • caso left = "application/vnd.amazonaws.connect.event.participant.left"

    • caso ended = "application/vnd.amazonaws.connect.event.chat.ended"

    • caso plainText = "text/plain"

    • caso richText = "text/markdown"

    • caso interactiveText = "application/vnd.amazonaws.connect.message.interactive"

L'immagine seguente mostra un'istanza predefinita di una chat Amazon Connect. I numeri nell'immagine corrispondono al testo numerato riportato di seguito.

Immagine che mostra i componenti di una finestra di chat di Amazon Connect.

Nell'immagine, a partire dall'alto:

  1. L'indicatore di digitazione mostra chi sta digitando un messaggio.

  2. Questo esempio utilizza messaggi di testo semplice. Se lo desideri, puoi abilitare l'uso di markdown.

  3. Il controllo interattivo dell'elenco fornisce agli utenti elenchi di scelte, come il servizio clienti o la fatturazione.

  4. Le risposte rapide interattive forniscono risposte preprogrammate a domande o frasi comuni.

Inviare messaggi

Si utilizza la SendMessage funzione per inviare messaggi di chat.

/// To send a message using the Participant SDK. /// - Parameters: /// - messageContent: The content of the message. /// - connectionToken: The authentication token associated with the connection - Received from Participant Connection /// - contentType: text/plain, text/markdown, application/json, and application/vnd.amazonaws.connect.message.interactive.response func sendChatMessage(messageContent: String) { let sendMessageRequest = AWSConnectParticipantSendMessageRequest() sendMessageRequest?.connectionToken = self.connectionToken sendMessageRequest?.content = messageContent sendMessageRequest?.contentType = "text/plain" connectParticipantClient? .sendMessage(sendMessageRequest!) .continueWith(block: { (task) -> Any? in return nil }) }

Gestisci gli eventi

Usa la SendEvent funzione del Partecipante SDK per eventi come la digitazione e la lettura delle ricevute.

/// Sends an event such as typing, joined, left etc. /// - Parameters: /// - contentType: The content type of the request /// - content: The content of the event to be sent (for example, message text). For content related to message receipts, this is supported in the form of a JSON string. func sendEvent(contentType: ContentType, content: String = "") { let sendEventRequest = AWSConnectParticipantSendEventRequest() sendEventRequest?.connectionToken = self.connectionToken sendEventRequest?.contentType = contentType.rawValue sendEventRequest?.content = content // Set the content here connectParticipantClient? .sendEvent(sendEventRequest!) .continueWith(block: { (task) -> Any? in return nil }) }

Termina una chat

Per terminare una chat, usa la disconnectParticipant funzione nel Partecipante. SDK

/// Disconnects a participant. /// - Parameter: connectionToken: The authentication token associated with the connection - Received from Participant Connection func endChat() { let disconnectParticipantRequest = AWSConnectParticipantDisconnectParticipantRequest() disconnectParticipantRequest?.connectionToken = self.connectionToken connectParticipantClient?.disconnectParticipant(disconnectParticipantRequest!) .continueWith(block: { (task) -> Any? in return nil }).waitUntilFinished() self.websocketUrl = nil }

Codice sorgente

I seguenti progetti di esempio GitHub mostrano come implementare una chat Amazon Connect.

Amazon Connect Chat SDK per iOS

Amazon Connect Chat SDK per iOS è una soluzione basata su Swift SDK che semplifica il processo di integrazione della chat per le applicazioni iOS. Questo SDK aiuta a gestire la logica della chat lato client e le comunicazioni di back-end in modo simile alla libreria Amazon Connect ChatJS.

Il SDK pacchetto include Amazon Connect Participant Service APIs e riassume la gestione della sessione di chat e. WebSocket In questo modo puoi concentrarti sull'interfaccia utente e sull'esperienza utente affidandoti alla chat di Amazon Connect SDK per interagire con tutti i servizi di back-end. Questo approccio richiede comunque di utilizzare il proprio back-end di chat per chiamare Amazon Connect e StartChatContact API avviare un contatto.

Per ulteriori informazioni, consulta la GitHub pagina Amazon Connect Chat SDK per iOS.