Integrasikan obrolan Amazon Connect ke dalam aplikasi seluler - Amazon Connect

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

Integrasikan obrolan Amazon Connect ke dalam aplikasi seluler

Topik di bagian ini menjelaskan cara membuat UI obrolan Amazon Connect khusus di aplikasi seluler Anda. Ini membutuhkan penggunaan back end obrolan Anda sendiri. Anda juga harus menggunakan Amazon Connect StartChatContactAPI untuk memulai kontak, dan API Layanan Peserta untuk mengelola partisipasi obrolan.

catatan

StartChatContactAPI memerlukan AWS penandatanganan Signature Version 4. Oleh karena itu, permintaan awal harus diarahkan melalui back end obrolan pribadi Anda. Panggilan API berikutnya ke Amazon Connect Participant Service (ACPS) dapat ditangani langsung dari aplikasi seluler.

Alur kerja integrasi

Diagram berikut menunjukkan aliran pemrograman antara pelanggan menggunakan aplikasi seluler dan agen. Teks bernomor dalam diagram sesuai dengan teks bernomor di bawah gambar.

Diagram yang menunjukkan alur program obrolan Amazon Connect.

Dalam diagram:

  1. Saat pelanggan memulai obrolan di aplikasi seluler, aplikasi akan mengirimkan permintaan ke Amazon Connect menggunakan StartChatContactAPI. Ini memerlukan parameter tertentu, seperti titik akhir API dan ID untuk instance dan alur kontak untuk mengautentikasi dan memulai obrolan.

  2. StartChatContactAPI berinteraksi dengan sistem back-end Anda untuk mendapatkan token peserta dan ID kontak yang bertindak sebagai pengidentifikasi unik untuk sesi obrolan.

  3. Bagian belakang aplikasi menggunakan token peserta dan ID kontak untuk berkomunikasi dengan Amazon Connect, menyiapkan sesi obrolan pelanggan.

  4. SDK Peserta Amazon Connect diaktifkan menggunakan token peserta, menyiapkan aplikasi untuk obrolan.

  5. SDK Peserta menggunakan detail sesi untuk membuat jalur komunikasi yang aman dengan Amazon Connect.

  6. Amazon Connect merespons dengan memberikan WebSocket URL melalui SDK Peserta. Aplikasi ini menggunakan URL ini untuk membuat WebSocket koneksi untuk pesan real-time.

  7. Amazon Connect menetapkan agen dukungan ke obrolan berdasarkan alur kontak dan profil perutean.

  8. Pesan dari agen datang melalui WebSocket koneksi. Aplikasi mobile mendengarkan WebSocket untuk menerima dan menampilkan pesan dari agen, dan untuk mengirim pesan pelanggan kembali.

Prasyarat

Anda harus memiliki prasyarat berikut untuk mengintegrasikan obrolan Amazon Connect dengan aplikasi seluler:

Instal perpustakaan

Anda memulai proses integrasi dengan menginstal pustaka untuk iOS dan Android. Anda harus menginstal kedua set perpustakaan.

  • iOS: Buka aws-sdk-iosrepositori GitHub dan instal yang berikut ini:

    pod 'AWSCore' pod 'AWSConnectParticipant' pod 'Starscream', '~> 4.0'
  • Android: Buka aws-sdk-androidrepositori GitHub dan instal yang berikut ini:

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

Konfigurasikan kredensial AWS

Setelah menginstal kedua kumpulan pustaka, Anda mendaftar dengan Amazon Connect Service dan Amazon Connect Participant Service. Untuk melakukan itu, dalam file Config untuk setiap sistem operasi, gunakan AWS kredensi Anda dan ganti secretKey nilai accessKey dan dengan string kosong (“”) seperti yang ditunjukkan pada contoh berikut.

penting

Anda harus menentukan Wilayah yang Anda uji.

  • iOS: Gunakan AWSStaticCredentialsProvider untuk pendaftaran Layanan Amazon Connect dan Layanan Peserta.

    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: Inisialisasi AmazonConnectParticipantAsyncClient dan atur Wilayah.

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

Anda dapat mengunduh file Config dari. GitHub Anda harus mengedit kedua file Config.

Mulai obrolan

Selanjutnya, Anda harus mengintegrasikan StartChatContactAPI yang disediakan oleh Amazon Connect. API memulai percakapan dengan mendaftarkan niat pelanggan untuk mengobrol dengan agen.

catatan

Untuk menerapkan fungsi StartChatContact Lambda, gunakan template CloudFront pada. GitHub

Untuk iOS dan Android, panggilan StartChatContact API memerlukan beberapa informasi:

  • InstanceId: Pengidentifikasi instans Amazon Connect.

  • ContactFlowId: Pengidentifikasi alur kontak untuk menangani obrolan.

  • ParticipantDetails: Informasi tentang peserta, seperti nama tampilan pelanggan.

  • Attributes: Informasi tambahan tentang kontak yang mungkin berguna untuk merutekan atau menangani obrolan dalam Amazon Connect.

penting

Anda harus menggunakan AWS Signature Version 4 (SigV4) untuk menandatangani panggilan API. Proses SigV4 menambahkan informasi otentikasi ke permintaan AWS API yang dikirim melalui HTTP. Untuk klien seluler, kami sarankan untuk melakukan proses penandatanganan di sisi server. Aplikasi seluler Anda mengirimkan permintaan ke server Anda, yang kemudian menandatangani permintaan dan meneruskannya ke Amazon Connect. Ini membantu mengamankan AWS kredensi Anda.

Untuk 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 }

Untuk 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 }

Buat koneksi peserta

Anda menggunakan detail yang diterima dari panggilan StartChatContactAPI untuk membuat koneksi peserta. Anda kemudian memanggil AWS Connect peserta SDK, yang mengembalikan WebSocket URL yang diperlukan untuk membuat koneksi.

Contoh berikut menunjukkan cara membuat koneksi untuk 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() }

Contoh berikut menunjukkan cara membuat koneksi untuk 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 ) }

Gunakan WebSocket koneksi

Gunakan SDK Peserta untuk mendapatkan WebSocket URL koneksi obrolan.

  • Untuk menerapkan WebSocket manajemen, gunakan solusi yang ada atau terapkan solusi Anda sendiri.

  • Untuk menangani pesan dan peristiwa Websocket, terapkan solusi Anda sendiri, atau gunakan solusi kami untuk iOS dan Android.

  • Pastikan Anda mencakup semua jenis pesan dan acara:

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

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

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

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

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

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

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

    • kasus plainText = "text/plain"

    • kasus richText = "text/markdown"

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

Gambar berikut menunjukkan contoh default Connect chat. Angka dalam gambar sesuai dengan teks bernomor di bawah ini.

Gambar yang menunjukkan komponen jendela obrolan Amazon Connect.

Pada gambar, mulai dari dekat bagian atas:

  1. Indikator pengetikan menunjukkan siapa yang mengetik pesan.

  2. Contoh ini menggunakan pesan teks biasa. Anda dapat mengaktifkan penggunaan penurunan harga jika diinginkan.

  3. Kontrol daftar interaktif memberi pengguna daftar pilihan, seperti layanan pelanggan atau penagihan.

  4. Balasan cepat interaktif memberikan tanggapan yang telah diprogram sebelumnya untuk pertanyaan atau frasa umum.

Kirim pesan

Anda menggunakan SendMessage fungsi untuk mengirim pesan obrolan.

/// 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 }) }

Menangani acara

Gunakan SendEvent fungsi dalam SDK Peserta untuk acara seperti mengetik dan membaca tanda terima.

/// 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 }) }

Akhiri obrolan

Untuk mengakhiri obrolan, gunakan disconnectParticipant fungsi di SDK Peserta.

/// 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 }

Kode sumber

Contoh proyek berikut GitHub menunjukkan cara menerapkan Connect chat.