Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.
Intégrer le chat Amazon Connect dans une application mobile
Les rubriques de cette section expliquent comment créer une interface utilisateur de chat Amazon Connect personnalisée dans votre application mobile. Cela nécessite d'utiliser votre propre backend de chat. Vous devez également utiliser l'StartChatContactAPI Amazon Connect pour établir le contact, et les API du service participant pour gérer la participation au chat.
Note
L'StartChatContact
API nécessite la AWS signature de la version 4 de Signature. Par conséquent, les demandes initiales doivent être acheminées via votre backend de chat personnel. Les appels d'API suivants à Amazon Connect Participant Service (ACPS) peuvent être traités directement depuis l'application mobile.
Rubriques
Flux de travail d'intégration
Le schéma suivant montre le flux de programmation entre un client utilisant une application mobile et un agent. Le texte numéroté dans le diagramme correspond au texte numéroté situé sous l'image.
Dans le schéma :
Lorsqu'un client lance un chat dans l'application mobile, celle-ci envoie une demande à Amazon Connect à l'aide de l'StartChatContactAPI. Cela nécessite des paramètres spécifiques, tels que le point de terminaison de l'API et les identifiants de l'instance et du flux de contacts pour authentifier et lancer le chat.
L'
StartChatContact
API interagit avec votre système principal pour obtenir un jeton de participant et un identifiant de contact qui servent d'identifiants uniques pour la session de chat.Le back-end de l'application utilise le jeton de participant et l'identifiant de contact pour communiquer avec Amazon Connect et configurer la session de chat du client.
Le SDK Amazon Connect Participant est activé à l'aide du jeton de participant, préparant ainsi l'application pour le chat.
Le SDK du participant utilise les détails de la session pour établir une ligne de communication sécurisée avec Amazon Connect.
Amazon Connect répond en fournissant une WebSocket URL via le SDK du participant. L'application utilise cette URL pour créer une WebSocket connexion pour la messagerie en temps réel.
Amazon Connect affecte un agent d'assistance au chat en fonction du flux de contacts et du profil de routage.
Les messages de l'agent passent par la WebSocket connexion. L'application mobile écoute pour recevoir et WebSocket afficher les messages de l'agent, et pour renvoyer les messages aux clients.
Prérequis
Vous devez remplir les conditions préalables suivantes pour intégrer le chat Amazon Connect à une application mobile :
-
Création d'une instance Amazon Connect.
—ou—
Si vous possédez une instance Connect, suivez les étapes ci-dessous GitHub pour activer le chat pour l'instance
. -
Créez un flux de contacts Amazon Connect, prêt à recevoir des contacts par chat.
Notez l'ID de l'instance.
Trouvez le contactFlowId pour leExemple de flux entrant (expérience de premier contact).
-
Déployez un backend de chat Amazon Connect personnalisé. Reportez-vous au modèle startChatContact d'API
sur GitHub. Déployez un startChatContact
modèle de fonction Lambda. CloudFront Ajoutez le
region
,API_GATEWAY_ID
contactFlowId
, etinstanceID
au fichier Config du modèle.
Installer des bibliothèques
Vous démarrez le processus d'intégration en installant les bibliothèques pour iOS et Android. Vous devez installer les deux ensembles de bibliothèques.
-
iOS : accédez au aws-sdk-ios
référentiel GitHub et installez ce qui suit : pod 'AWSCore' pod 'AWSConnectParticipant' pod 'Starscream', '~> 4.0'
-
Android : accédez au aws-sdk-android
référentiel GitHub et installez ce qui suit : implementation("com.amazonaws:aws-android-sdk-core:2.73.0") implementation("com.amazonaws:aws-android-sdk-connectparticipant:2.73.0")
Configuration des informations d'identification AWS
Après avoir installé les deux ensembles de bibliothèques, vous vous inscrivez auprès du service Amazon Connect et du service participant Amazon Connect. Pour ce faire, dans les fichiers de configuration de chaque système d'exploitation, utilisez vos AWS informations d'identification et remplacez les secretKey
valeurs accessKey
et par des chaînes vides (“”
) comme indiqué dans les exemples suivants.
Important
Vous devez spécifier la région dans laquelle vous effectuez le test.
-
iOS : à utiliser
AWSStaticCredentialsProvider
pour l'enregistrement du service Amazon Connect et du service participant.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 : initialisez
AmazonConnectParticipantAsyncClient
et définissez la région.private var connectParticipantClient: AmazonConnectParticipantAsyncClient = AmazonConnectParticipantAsyncClient() private val chatConfiguration = Config init { connectParticipantClient.setRegion(Region.getRegion(chatConfiguration.
region
)) }
Note
Vous pouvez télécharger les fichiers de configuration depuis GitHub. Vous devez modifier les deux fichiers de configuration.
Commencer une discussion
Ensuite, vous devez intégrer l'StartChatContactAPI fournie par Amazon Connect. L'API lance la conversation en enregistrant l'intention du client de discuter avec un agent.
Note
Pour déployer une fonction StartChatContact
Lambda, utilisez le CloudFront modèle
Pour iOS et Android, l'appel d'StartChatContact
API nécessite plusieurs informations :
InstanceId
: identifiant de l'instance Amazon Connect.ContactFlowId
: identifiant du flux de contacts pour gérer le chat.ParticipantDetails
: informations sur le participant, telles que le nom d'affichage du client.Attributes
: informations supplémentaires sur le contact qui peuvent être utiles pour acheminer ou gérer le chat dans Amazon Connect.
Important
Vous devez utiliser AWS Signature Version 4 (SigV4) pour signer l'appel d'API. Le processus SigV4 ajoute des informations d'authentification aux demandes AWS d'API envoyées via HTTP. Pour les clients mobiles, nous recommandons d'exécuter le processus de signature côté serveur. Votre application mobile envoie une demande à votre serveur, qui la signe et la transmet à Amazon Connect. Cela permet de sécuriser vos AWS informations d'identification.
Pour 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 }
Pour 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 }
Création d'une connexion pour les participants
Vous utilisez les informations reçues lors d'un appel d'StartChatContactAPI pour créer une connexion de participant. Vous appelez ensuite le SDK du participant AWS Connect, qui renvoie l' WebSocket URL nécessaire pour établir la connexion.
L'exemple suivant montre comment établir une connexion pour 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'exemple suivant montre comment établir une connexion pour 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 ) }
Utiliser des WebSocket connexions
Utilisez le SDK du participant pour obtenir une WebSocket URL pour la connexion au chat.
Pour mettre en œuvre WebSocket la gestion, utilisez les solutions existantes ou implémentez les vôtres.
Pour gérer les messages et les événements Websocket, implémentez votre propre solution ou utilisez nos solutions pour iOS
et Android . -
Assurez-vous de couvrir tous les types de messages et d'événements :
cas
typing = "application/vnd.amazonaws.connect.event.typing"
cas
messageDelivered = "application/vnd.amazonaws.connect.event.message.delivered"
cas
messageRead = "application/vnd.amazonaws.connect.event.message.read"
cas
metaData = "application/vnd.amazonaws.connect.event.message.metadata"
cas
joined = "application/vnd.amazonaws.connect.event.participant.joined"
cas
left = "application/vnd.amazonaws.connect.event.participant.left"
cas
ended = "application/vnd.amazonaws.connect.event.chat.ended"
cas
plainText = "text/plain"
cas
richText = "text/markdown"
cas
interactiveText = "application/vnd.amazonaws.connect.message.interactive"
L'image suivante montre une instance par défaut de Connect chat. Les chiffres de l'image correspondent au texte numéroté ci-dessous.
Sur l'image, en commençant par le haut :
L'indicateur de saisie indique qui est en train de taper un message.
Cet exemple utilise des messages en texte brut. Vous pouvez activer l'utilisation du markdown si vous le souhaitez.
Le contrôle de liste interactif fournit aux utilisateurs des listes de choix, tels que le service client ou la facturation.
Les réponses rapides interactives fournissent des réponses préprogrammées à des questions ou à des phrases courantes.
Envoyer des messages
Vous utilisez cette SendMessage
fonction pour envoyer des messages de 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 }) }
Gérez les événements
Utilisez la SendEvent
fonction du SDK du participant pour des événements tels que la saisie et la lecture de reçus.
/// 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 }) }
Mettre fin à une discussion
Pour mettre fin à une discussion, utilisez la disconnectParticipant
fonction du SDK du participant.
/// 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 }
Code source
Les exemples de projets suivants GitHub montrent comment implémenter le chat Connect.
Android : Démo de chat natif Android
.