Mulai Cepat: Menambahkan obrolan ke aplikasi Anda
Memulai dengan Azure Communication Services dengan menggunakan SDK Obrolan Communication Services untuk menambahkan obrolan real time ke aplikasi Anda. Dalam mulai cepat ini, kita akan menggunakan SDK Obrolan untuk membuat utas obrolan yang memungkinkan pengguna melakukan percakapan satu sama lain. Untuk mempelajari lebih lanjut tentang konsep Obrolan, kunjungi dokumentasi konseptual obrolan.
Prasyarat
Akun Azure dengan langganan aktif. Buat akun secara gratis.
Sumber daya Communication Services aktif dan string koneksi. Buat sumber daya Azure Communication Services.
Instal Azure CLI.
Perhatikan titik akhir sumber daya Communication Services Anda. Anda bisa mendapatkan titik akhir dari portal Azure. Atau, Anda dapat menemukan url titik akhir di string koneksi. Ini adalah url yang muncul setelah
endpoint=
dan dimulai denganhttps://
.Token Akses Pengguna. Pastikan untuk mengatur cakupan ke obrolan, dan catat string token serta string user_id. Anda juga dapat menggunakan Azure CLI dan menjalankan perintah di bawah ini dengan string koneksi Anda untuk membuat pengguna dan token akses.
az communication identity token issue --scope chat --connection-string "yourConnectionString"
Untuk detailnya, lihat Menggunakan Azure CLI untuk Membuat dan Mengelola Token Akses.
Menyiapkan
Menambahkan ekstensi
Tambahkan ekstensi Azure Communication Services untuk Azure CLI dengan menggunakan az extension
perintah .
az extension add --name communication
Masuk ke Azure CLI
Anda harus masuk ke Azure CLI. Anda dapat masuk menjalankan az login
perintah dari terminal dan memberikan kredensial Anda.
(Opsional) Menggunakan operasi identitas Azure CLI tanpa melewati titik akhir atau token akses
Menyimpan titik akhir Anda dalam variabel lingkungan
Anda dapat mengonfigurasi AZURE_COMMUNICATION_ENDPOINT
variabel lingkungan untuk menggunakan operasi obrolan Azure CLI tanpa harus menggunakan --endpoint
untuk melewati titik akhir. Untuk mengonfigurasi variabel lingkungan, buka jendela konsol dan pilih sistem operasi Anda dari tab di bawah ini. Ganti <yourEndpoint>
dengan titik akhir Anda yang sebenarnya.
Buka jendela konsol dan masukkan perintah berikut:
setx AZURE_COMMUNICATION_ENDPOINT "<yourEndpoint>"
Setelah Anda menambahkan variabel lingkungan, Anda mungkin perlu menghidupkan ulang program yang sedang berjalan yang perlu membaca variabel lingkungan, termasuk jendela konsol. Misalnya, jika Anda menggunakan Visual Studio sebagai editor, mulai ulang Visual Studio sebelum menjalankan contoh.
Menyimpan token akses Anda dalam variabel lingkungan
Anda dapat mengonfigurasi AZURE_COMMUNICATION_ACCESS_TOKEN
variabel lingkungan untuk menggunakan operasi obrolan Azure CLI tanpa harus menggunakan --access-token
untuk meneruskan token akses. Untuk mengonfigurasi variabel lingkungan, buka jendela konsol dan pilih sistem operasi Anda dari tab di bawah ini. Ganti <yourAccessToken>
dengan token akses Anda yang sebenarnya.
Buka jendela konsol dan masukkan perintah berikut:
setx AZURE_COMMUNICATION_ACCESS_TOKEN "<yourAccessToken>"
Setelah Anda menambahkan variabel lingkungan, Anda mungkin perlu menghidupkan ulang program yang sedang berjalan yang perlu membaca variabel lingkungan, termasuk jendela konsol. Misalnya, jika Anda menggunakan Visual Studio sebagai editor, mulai ulang Visual Studio sebelum menjalankan contoh.
Operasional
Memulai utas obrolan
thread create
Gunakan perintah untuk membuat utas obrolan.
az communication chat thread create --topic "<chatTopic>" --endpoint "<endpoint>" --access-token "<token>"
Jika Anda telah menyimpan titik akhir dan token akses dalam variabel lingkungan seperti yang dinyatakan di atas, Anda tidak perlu meneruskannya ke perintah .
az communication chat thread create --topic "<chatTopic>"
- Gunakan
<chatTopic>
untuk memberi topik pada utas. Anda dapat memperbarui topik setelah utas obrolan dibuat dengan menggunakanthread update-topic
perintah . - Ganti
<endpoint>
dengan titik akhir Azure Communication Services Anda. - Ganti
<token>
dengan token akses Anda yang diperoleh sebelumnya denganidentity token issue
menjalankan perintah.
Memperbarui topik utas obrolan
az communication chat thread update-topic --thread "<chatThreadId>" --topic "<chatTopic>" --endpoint "<endpoint>" --access-token "<token>"
- Ganti
<chatThreadId>
dengan ID utas obrolan Anda. - Ganti
<chatTopic>
dengan topik obrolan baru yang ingin Anda atur. - Ganti
<endpoint>
dengan titik akhir Azure Communication Services Anda. - Ganti
<token>
dengan token akses Anda yang diperoleh sebelumnya denganidentity token issue
menjalankan perintah.
Mencantumkan semua utas obrolan
thread list
Perintah mengembalikan daftar utas obrolan pengguna.
az communication chat thread list --start-time "<startTime>" --endpoint "<endpoint>" --access-token "<token>"
- Gunakan
<startTime>
secara opsional untuk menentukan titik waktu paling awal untuk mendapatkan pesan obrolan. - Ganti
<endpoint>
dengan titik akhir Azure Communication Services Anda. - Ganti
<token>
dengan token akses Anda yang diperoleh sebelumnya denganidentity token issue
menjalankan perintah.
Mengirim pesan ke utas obrolan
message send
Gunakan perintah untuk mengirim pesan ke utas obrolan yang Anda buat, yang diidentifikasi oleh threadId
.
az communication chat message send --thread "<chatThreadId>" --display-name "<displayName>" --content "<content>" --message-type "<messageType>" --endpoint "<endpoint>" --access-token "<token>"
- Ganti
<chatThreadId>
dengan ID utas obrolan Anda. - Gunakan
<content>
untuk menyediakan konten pesan obrolan. - Gunakan
<messageType>
untuk menentukan jenis konten pesan. Nilai yang mungkin adalahtext
danhtml
. Jika Anda tidak menentukan nilai, defaultnya adalahtext
. - Gunakan
<displayName>
secara opsional untuk menentukan nama tampilan pengirim. - Ganti
<endpoint>
dengan titik akhir Azure Communication Services Anda. - Ganti
<token>
dengan token akses Anda yang diperoleh sebelumnya denganidentity token issue
menjalankan perintah.
Mencantumkan pesan obrolan di utas obrolan
Perintah message list
mengembalikan daftar pesan obrolan dalam utas obrolan.
az communication chat message list --thread "<chatThreadId>" --start-time "<startTime>" --endpoint "<endpoint>" --access-token "<token>"
- Ganti
<chatThreadId>
dengan ID utas obrolan Anda. - Gunakan
<startTime>
secara opsional untuk menentukan titik waktu paling awal untuk mendapatkan pesan obrolan. - Ganti
<endpoint>
dengan titik akhir Azure Communication Services Anda. - Ganti
<token>
dengan token akses Anda yang diperoleh sebelumnya denganidentity token issue
menjalankan perintah.
Menerima pesan obrolan dari utas obrolan
Anda dapat mengambil pesan obrolan dengan menggunakan message list
perintah .
az communication chat message get --thread "<chatThreadId>" --message-id "<messageId>" --endpoint "<endpoint>" --access-token "<token>"
- Ganti
<chatThreadId>
dengan ID utas obrolan Anda. - Ganti
<messageId>
dengan ID pesan yang ingin Anda ambil. - Ganti
<endpoint>
dengan titik akhir Azure Communication Services Anda. - Ganti
<token>
dengan token akses Anda yang diperoleh sebelumnya denganidentity token issue
menjalankan perintah.
Mengirim tanda terima dibaca
Anda menggunakan message receipt send
perintah untuk memposting peristiwa tanda terima baca ke utas, atas nama pengguna.
az communication chat message receipt send --thread "<chatThreadId>" --message-id "<messageId>" --endpoint "<endpoint>" --access-token "<token>"
- Ganti
<chatThreadId>
dengan ID utas obrolan Anda. - Ganti
<messageId>
untuk menentukan ID pesan terbaru yang dibaca oleh pengguna saat ini. - Ganti
<endpoint>
dengan titik akhir Azure Communication Services Anda. - Ganti
<token>
dengan token akses Anda yang diperoleh sebelumnya denganidentity token issue
menjalankan perintah.
Menambahkan pengguna sebagai peserta ke utas obrolan
Ketika membuat utas obrolan, Anda kemudian dapat menambahkan dan menghapus pengguna darinya. Dengan menambahkan pengguna, Anda memberi mereka akses untuk dapat mengirim pesan ke utas obrolan, dan menambahkan atau menghapus peserta lain. Sebelum memanggil perintah, pastikan Anda telah memperoleh token akses dan identitas baru untuk pengguna tersebut participant add
.
az communication chat participant add --thread "<chatThreadId>" --user "<userId>" --display-name "<displayName>" --start-time "<startTime>" --endpoint "<endpoint>" --access-token "<token>"
- Ganti
<chatThreadId>
dengan ID utas obrolan Anda. - Ganti
<userId>
dengan userId Anda. - Gunakan
<displayName>
secara opsional untuk menentukan nama tampilan pengirim. - Gunakan
<startTime>
secara opsional untuk menentukan titik waktu paling awal untuk mendapatkan pesan obrolan. - Ganti
<endpoint>
dengan titik akhir Azure Communication Services Anda. - Ganti
<token>
dengan token akses Anda yang diperoleh sebelumnya denganidentity token issue
menjalankan perintah.
Mencantumkan peserta utas dalam utas obrolan
Serupa dengan menambahkan peserta, Anda juga dapat mencantumkan peserta dari utas.
Gunakan participant list
perintah untuk mengambil peserta utas.
az communication chat participant list --thread "<chatThreadId>" --skip "<skip>" --endpoint "<endpoint>" --access-token "<token>"
- Ganti
<chatThreadId>
dengan ID utas obrolan Anda. - Gunakan
<skip>
secara opsional untuk melewati peserta hingga posisi tertentu dalam respons. - Ganti
<endpoint>
dengan titik akhir Azure Communication Services Anda. - Ganti
<token>
dengan token akses Anda yang diperoleh sebelumnya denganidentity token issue
menjalankan perintah.
Menghapus peserta dari utas obrolan
Anda dapat menghapus peserta obrolan dari utas obrolan dengan menggunakan perintah 'peserta hapus'.
az communication chat participant remove --thread "<chatThreadId>" --user "<userId>" --endpoint "<endpoint>" --access-token "<token>"
- Ganti
<chatThreadId>
dengan ID utas obrolan Anda. - Ganti
<userId>
dengan userId yang ingin Anda hapus dari utas obrolan. - Ganti
<endpoint>
dengan titik akhir Azure Communication Services Anda. - Ganti
<token>
dengan token akses Anda yang diperoleh sebelumnya denganidentity token issue
menjalankan perintah.
Prasyarat
Sebelum memulai, pastikan untuk:
Buat akun Azure dengan langganan aktif. Untuk detailnya, lihat Membuat akun gratis.
Menginstal Node.js versi LTS Aktif dan LTS Pemeliharaan.
Membuat sumber daya Azure Communication Services. Untuk detailnya, lihat Membuat sumber daya Azure Communication Services. Anda harus merekam titik akhir sumber daya dan string koneksi untuk mulai cepat ini.
Buat tiga Pengguna Azure Communication Services dan terbitkan Token Akses Pengguna. Pastikan untuk mengatur cakupan ke obrolan, dan catat string token serta string user_id. Demo lengkap membuat utas dengan dua peserta awal, kemudian menambahkan peserta ketiga ke utas. Anda juga dapat menggunakan Azure CLI dan menjalankan perintah di bawah ini dengan string koneksi Anda untuk membuat pengguna dan token akses.
az communication identity token issue --scope chat --connection-string "yourConnectionString"
Untuk detailnya, lihat Menggunakan Azure CLI untuk Membuat dan Mengelola Token Akses.
Menyiapkan
Membuat aplikasi web baru
Pertama, buka terminal atau jendela perintah, buat direktori baru untuk aplikasi Anda, dan navigasikan ke sana.
mkdir chat-quickstart && cd chat-quickstart
Jalankan npm init -y
untuk membuat file package.json dengan pengaturan default.
npm init -y
Menginstal paket
Gunakan perintah npm install
untuk menginstal Communication Services SDK untuk JavaScript di bawah.
npm install @azure/communication-common --save
npm install @azure/communication-identity --save
npm install @azure/communication-signaling --save
npm install @azure/communication-chat --save
Opsi --save
mencantumkan pustaka sebagai dependensi di file package.json Anda.
Menyiapkan kerangka kerja aplikasi
Mulai cepat ini menggunakan paket untuk menggabungkan aset aplikasi. Jalankan perintah berikut untuk menginstalnya dan mencantumkannya sebagai dependensi pengembangan di package.json Anda:
npm install parcel --save-dev
Buat file index.html di direktori akar proyek Anda. Kami akan menggunakan file ini sebagai templat untuk menambahkan kemampuan obrolan menggunakan Azure Communication Chat SDK untuk JavaScript.
<!DOCTYPE html>
<html>
<head>
<title>Communication Client - Chat Sample</title>
</head>
<body>
<h4>Azure Communication Services</h4>
<h1>Chat Quickstart</h1>
<script src="./client.js" type="module"></script>
</body>
</html>
Buat file di direktori akar proyek Anda yang disebut client.js agar berisi logika aplikasi untuk mulai cepat ini.
Membuat klien obrolan
Untuk membuat klien obrolan di aplikasi web, Anda akan menggunakan titik akhir Communications Service dan token akses yang dibuat sebagai bagian dari langkah prasyarat.
Token akses pengguna memungkinkan Anda membangun aplikasi klien yang langsung mengautentikasi ke Azure Communication Services. Mulai cepat ini tidak mencakup pembuatan tingkat layanan untuk mengelola token untuk aplikasi obrolan Anda. Lihat konsep obrolan untuk mengetahui informasi selengkapnya tentang arsitektur obrolan, dan token akses pengguna untuk mengetahui informasi selengkapnya tentang token akses.
Di client.js, gunakan titik akhir dan token akses dalam kode di bawah untuk menambahkan kemampuan obrolan menggunakan Azure Communication Chat SDK untuk JavaScript.
import { ChatClient } from '@azure/communication-chat';
import { AzureCommunicationTokenCredential } from '@azure/communication-common';
// Your unique Azure Communication service endpoint
let endpointUrl = '<replace with your resource endpoint>';
// The user access token generated as part of the pre-requisites
let userAccessToken = '<USER_ACCESS_TOKEN>';
let chatClient = new ChatClient(endpointUrl, new AzureCommunicationTokenCredential(userAccessToken));
console.log('Azure Communication Chat client created!');
- Ganti endpointUrl dengan titik akhir sumber daya Communication Services, lihat Membuat sumber daya Azure Communication Services jika Anda belum melakukannya.
- Ganti userAccessToken dengan token yang Anda terbitkan.
Menjalankan kode
Jalankan perintah berikut untuk menjalankan aplikasi Anda:
npx parcel index.html
Buka browser Anda dan navigasi ke http://localhost:1234/. Di konsol alat developer di browser Anda, Anda akan melihat berikut:
Azure Communication Chat client created!
Model objek
Kelas dan tatap muka berikut menangani beberapa fitur utama SDK Obrolan Azure Communication Services untuk JavaScript.
Nama | Deskripsi |
---|---|
ChatClient | Kelas ini diperlukan karena berfungsi sebagai obrolan. Anda membuat instans dari informasi langganan Anda, dan menggunakannya untuk membuat, mendapatkan, menghapus utas, dan berlangganan acara obrolan. |
ChatThreadClient | Kelas ini diperlukan untuk fungsionalitas Utas Obrolan. Anda mendapatkan instans melalui ChatClient dan menggunakannya untuk mengirim/menerima/memperbarui/menghapus pesan, menambah/menghapus/mendapatkan pengguna, mengirim pemberitahuan pengetikan dan tanda terima baca. |
Memulai utas obrolan
Gunakan metode createThread
untuk membuat utas obrolan.
createThreadRequest
digunakan untuk mendeskripsikan permintaan utas:
- Gunakan
topic
untuk memberikan topik pada obrolan ini. Topik dapat diperbarui setelah utas obrolan dibuat menggunakan fungsiUpdateThread
. - Gunakan
participants
untuk mencantumkan peserta untuk ditambahkan ke utas obrolan.
Setelah diselesaikan, metode createChatThread
menampilkan CreateChatThreadResult
. Model ini berisi properti chatThread
tempat Anda dapat mengakses id
dari utas yang baru dibuat. Anda kemudian dapat menggunakan id
untuk mendapatkan instans ChatThreadClient
. Kemudian ChatThreadClient
dapat digunakan untuk melakukan operasi dalam utas seperti mengirim pesan atau mencantumkan peserta.
async function createChatThread() {
const createChatThreadRequest = {
topic: "Hello, World!"
};
const createChatThreadOptions = {
participants: [
{
id: { communicationUserId: '<USER_ID>' },
displayName: '<USER_DISPLAY_NAME>'
}
]
};
const createChatThreadResult = await chatClient.createChatThread(
createChatThreadRequest,
createChatThreadOptions
);
const threadId = createChatThreadResult.chatThread.id;
return threadId;
}
createChatThread().then(async threadId => {
console.log(`Thread created:${threadId}`);
// PLACEHOLDERS
// <CREATE CHAT THREAD CLIENT>
// <RECEIVE A CHAT MESSAGE FROM A CHAT THREAD>
// <SEND MESSAGE TO A CHAT THREAD>
// <LIST MESSAGES IN A CHAT THREAD>
// <ADD NEW PARTICIPANT TO THREAD>
// <LIST PARTICIPANTS IN A THREAD>
// <REMOVE PARTICIPANT FROM THREAD>
});
Saat me-refresh tab browser, Anda akan melihat hal berikut di konsol:
Thread created: <thread_id>
Mendapatkan klien utas obrolan
Metode getChatThreadClient
menampilkan chatThreadClient
untuk utas yang sudah ada. Ini dapat digunakan untuk melakukan operasi pada utas yang dibuat: menambahkan peserta, mengirim pesan, dll. threadId adalah ID unik dari utas obrolan yang ada.
let chatThreadClient = chatClient.getChatThreadClient(threadId);
console.log(`Chat Thread client for threadId:${threadId}`);
Tambahkan kode ini sebagai ganti komentar <CREATE CHAT THREAD CLIENT>
di client.js, refresh tab browser Anda dan periksa konsol, Anda akan melihat:
Chat Thread client for threadId: <threadId>
Mencantumkan semua utas obrolan
Metode listChatThreads
ini menampilkan PagedAsyncIterableIterator
dari jenis ChatThreadItem
. Ini dapat digunakan untuk mencantumkan semua utas obrolan.
Iterator [ChatThreadItem]
adalah respons yang ditampilkan dari mencantumkan utas
const threads = chatClient.listChatThreads();
for await (const thread of threads) {
// your code here
}
Mengirim pesan ke utas obrolan
Gunakan sendMessage
metode untuk mengirim pesan ke utas yang diidentifikasi oleh threadId.
sendMessageRequest
digunakan untuk menjelaskan permintaan pesan:
- Gunakan
content
untuk menyediakan konten pesan obrolan;
sendMessageOptions
digunakan untuk menjelaskan param opsional operasi:
- Gunakan
senderDisplayName
untuk menentukan nama tampilan pengirim; - Gunakan
type
untuk menentukan jenis pesan, seperti 'teks' atau 'html'; - Gunakan
metadata
secara opsional untuk menyertakan data lain yang ingin Anda kirim bersama dengan pesan. Bidang ini menyediakan mekanisme bagi pengembang untuk memperluas fungsionalitas pesan obrolan dan menambahkan informasi kustom untuk kasus penggunaan Anda. Misalnya, saat berbagi tautan file dalam pesan, Anda mungkin ingin menambahkan 'hasAttachment: true' dalam metadata sehingga aplikasi penerima dapat mengurainya dan menampilkannya.
SendChatMessageResult
adalah respons yang ditampilkan dari mengirim pesan, berisi ID, yang merupakan ID unik pesan.
const sendMessageRequest =
{
content: 'Please take a look at the attachment'
};
let sendMessageOptions =
{
senderDisplayName : 'Jack',
type: 'text',
metadata: {
'hasAttachment': 'true',
'attachmentUrl': 'https://contoso.com/files/attachment.docx'
}
};
const sendChatMessageResult = await chatThreadClient.sendMessage(sendMessageRequest, sendMessageOptions);
const messageId = sendChatMessageResult.id;
console.log(`Message sent!, message id:${messageId}`);
Tambahkan kode ini sebagai ganti komentar <SEND MESSAGE TO A CHAT THREAD>
di client.js, refresh tab browser Anda dan periksa konsol.
Message sent!, message id:<number>
Menerima pesan obrolan dari utas obrolan
Dengan sinyal real time, Anda dapat berlangganan untuk mendengarkan pesan masuk baru dan memperbarui pesan saat ini di memori. Azure Communication Services mendukung daftar acar yang dapat Anda ikuti untuk .
// open notifications channel
await chatClient.startRealtimeNotifications();
// subscribe to new notification
chatClient.on("chatMessageReceived", (e) => {
console.log("Notification chatMessageReceived!");
// your code here
});
Tambahkan kode ini sebagai ganti komentar <RECEIVE A CHAT MESSAGE FROM A CHAT THREAD>
di client.js.
Refresh tab browser Anda, Anda akan melihat di konsol Notification chatMessageReceived
pesan;
Atau, Anda dapat mengambil pesan obrolan dengan polling metode listMessages
pada interval tertentu.
const messages = chatThreadClient.listMessages();
for await (const message of messages) {
// your code here
}
Tambahkan kode ini sebagai ganti komentar <LIST MESSAGES IN A CHAT THREAD>
di client.js.
Refresh tab Anda, Anda harus menemukan daftar pesan yang dikirim dalam utas obrolan ini di konsol.
listMessages
mengembalikan berbagai jenis pesan yang dapat diidentifikasi oleh chatMessage.type
.
Untuk detail selengkapnya, lihat Jenis Pesan.
Menambahkan pengguna sebagai peserta ke utas obrolan
Setelah utas obrolan dibuat, Anda kemudian dapat menambahkan dan menghapus pengguna utas tersebut. Dengan menambahkan pengguna, Anda memberi mereka akses untuk mengirim pesan ke utas obrolan, dan menambahkan/menghapus peserta lain.
Sebelum memanggil metode , pastikan Anda telah memperoleh token akses dan identitas baru untuk pengguna tersebut addParticipants
. Pengguna akan membutuhkan token akses tersebut untuk menginisialisasi klien obrolan mereka.
addParticipantsRequest
menjelaskan objek permintaan tempat participants
peserta akan ditambahkan ke utas obrolan;
id
, diperlukan, adalah pengidentifikasi komunikasi untuk ditambahkan ke utas obrolan.displayName
, opsional, adalah nama tampilan untuk peserta utas.shareHistoryTime
, opsional, adalah waktu saat riwayat obrolan dibagikan dengan peserta. Untuk membagikan riwayat sejak awal utas obrolan, atur properti ini ke tanggal yang sama dengan, atau kurang dari waktu pembuatan utas. Untuk tidak membagikan riwayat sebelum saat peserta ditambahkan, atur riwayat ke tanggal saat ini. Untuk berbagi riwayat sebagian, atur ke tanggal pilihan Anda.
const addParticipantsRequest =
{
participants: [
{
id: { communicationUserId: '<NEW_PARTICIPANT_USER_ID>' },
displayName: 'Jane'
}
]
};
await chatThreadClient.addParticipants(addParticipantsRequest);
Ganti NEW_PARTICIPANT_USER_ID dengan ID pengguna baru Tambahkan kode ini sebagai ganti komentar <ADD NEW PARTICIPANT TO THREAD>
di client.js
Mencantumkan pengguna di utas obrolan
const participants = chatThreadClient.listParticipants();
for await (const participant of participants) {
// your code here
}
Tambahkan kode ini sebagai ganti komentar <LIST PARTICIPANTS IN A THREAD>
di client.js, refresh tab browser Anda dan periksa konsol, Anda akan melihat informasi tentang pengguna di utas.
Menghapus pengguna dari utas obrolan
Mirip dengan menambahkan peserta, Anda dapat menghapus peserta dari utas obrolan. Untuk menghapus, Anda harus melacak ID peserta yang telah Anda tambahkan.
Gunakan metode removeParticipant
yang mana participant
adalah pengguna komunikasi yang akan dihapus dari utas.
await chatThreadClient.removeParticipant({ communicationUserId: <PARTICIPANT_ID> });
await listParticipants();
Ganti PARTICIPANT_ID dengan ID Pengguna yang digunakan pada langkah sebelumnya (<NEW_PARTICIPANT_USER_ID>).
Tambahkan kode ini sebagai ganti komentar <REMOVE PARTICIPANT FROM THREAD>
di client.js.
Berlangganan status koneksi pemberitahuan real time
Langganan ke peristiwa realTimeNotificationConnected
dan realTimeNotificationDisconnected
memungkinkan Anda mengetahui kapan koneksi ke server panggilan aktif.
// subscribe to realTimeNotificationConnected event
chatClient.on('realTimeNotificationConnected', () => {
console.log("Real time notification is now connected!");
// your code here
});
// subscribe to realTimeNotificationDisconnected event
chatClient.on('realTimeNotificationDisconnected', () => {
console.log("Real time notification is now disconnected!");
// your code here
});
Kode Sampel
Menemukan kode final untuk mulai cepat ini di GitHub.
Prasyarat
Sebelum memulai, pastikan untuk:
Buat akun Azure dengan langganan aktif. Untuk detailnya, lihat Membuat akun gratis.
Instal Python 3.7+.
Membuat sumber daya Azure Communication Services. Untuk mengetahui detailnya, lihat Mulai cepat: Buat dan kelola sumber daya Azure Communication Services. Anda harus merekam titik akhir sumber daya dan string koneksi untuk mulai cepat ini.
Token Akses Pengguna. Pastikan untuk mengatur cakupan ke obrolan, dan catat string token serta string user_id. Anda juga dapat menggunakan Azure CLI dan menjalankan perintah di bawah ini dengan string koneksi Anda untuk membuat pengguna dan token akses.
az communication identity token issue --scope chat --connection-string "yourConnectionString"
Untuk detailnya, lihat Menggunakan Azure CLI untuk Membuat dan Mengelola Token Akses.
Menyiapkan
Membuat aplikasi Python baru
Buka terminal atau jendela perintah, buat direktori baru untuk aplikasi Anda, dan masuk ke sana.
mkdir chat-quickstart && cd chat-quickstart
Gunakan editor teks untuk membuat file bernama start-chat.py di direktori akar proyek. Tambahkan struktur program, termasuk penanganan pengecualian dasar. Di bagian berikutnya, Anda akan menambahkan semua kode sumber untuk mulai cepat ini ke dalam file ini.
import os
# Add required SDK components from quickstart here
try:
print('Azure Communication Services - Chat Quickstart')
# Quickstart code goes here
except Exception as ex:
print('Exception:')
print(ex)
Memasang SDK
Gunakan perintah berikut untuk memasang SDK:
pip install azure-communication-chat
Model objek
Kelas dan antarmuka berikut menangani beberapa fitur utama SDK Obrolan Azure Communication Services untuk Python.
Nama | Deskripsi |
---|---|
ChatClient |
Kelas ini diperlukan karena berfungsi sebagai obrolan. Anda membuat instans dari informasi langganan Anda, dan menggunakannya untuk membuat, mendapatkan, dan menghapus utas. |
ChatThreadClient |
Kelas ini dibuat untuk fungsi Utas Obrolan. Anda mendapatkan instans melalui ChatClient , dan menggunakannya untuk mengirim, menerima, memperbarui, dan menghapus pesan. Anda juga dapat menggunakannya untuk menambahkan, menghapus, dan mendapatkan pengguna, serta mengirim pemberitahuan pengetikan dan tanda terima baca. |
Membuat klien obrolan
Untuk membuat klien obrolan, gunakan titik akhir Azure Communication Services dan token akses yang Anda buat sebagai bagian dari langkah prasyarat.
pip install azure-communication-identity
from azure.communication.chat import ChatClient, CommunicationTokenCredential
endpoint = "<replace with your resource endpoint>"
chat_client = ChatClient(endpoint, CommunicationTokenCredential("<Access Token>"))
Mulai cepat ini tidak mencakup tingkat layanan untuk mengelola token untuk aplikasi obrolan Anda, tetapi hal ini direkomendasikan. Untuk informasi selengkapnya, lihat bagian "Rancangan obrolan" pada Konsep obrolan.
Memulai utas obrolan
Gunakan metode create_chat_thread
untuk membuat utas obrolan.
- Gunakan
topic
untuk memberi topik pada utas. Anda dapat memperbarui topik setelah utas obrolan dibuat dengan menggunakan fungsiupdate_thread
. - Gunakan
thread_participants
untuk mencantumkanChatParticipant
agar ditambahkan ke utas obrolan.ChatParticipant
mengambil jenisCommunicationUserIdentifier
sebagaiuser
.
CreateChatThreadResult
adalah hasil yang dikembalikan dari pembuatan utas. Anda dapat menggunakannya untuk mengambil id
pada utas obrolan yang telah dibuat. id
ini kemudian dapat digunakan untuk mengambil objek ChatThreadClient
dengan menggunakan metode get_chat_thread_client
. Anda dapat menggunakan ChatThreadClient
untuk melakukan operasi obrolan lain pada utas obrolan ini.
topic="test topic"
create_chat_thread_result = chat_client.create_chat_thread(topic)
chat_thread_client = chat_client.get_chat_thread_client(create_chat_thread_result.chat_thread.id)
Mendapatkan klien utas obrolan
Metode get_chat_thread_client
ini mengembalikan klien utas untuk utas yang sudah ada. Anda dapat menggunakannya untuk melakukan operasi di utas yang dibuat. Misalnya, Anda dapat menambahkan peserta dan mengirim pesan. thread_id
adalah ID unik dari utas obrolan yang ada.
Anda dapat menggunakan ChatThreadClient
untuk melakukan operasi obrolan lain pada utas obrolan ini.
thread_id = create_chat_thread_result.chat_thread.id
chat_thread_client = chat_client.get_chat_thread_client(thread_id)
Mencantumkan semua utas obrolan
Metode list_chat_threads
mengembalikan iterator jenis ChatThreadItem
.
- Gunakan
start_time
untuk menentukan titik paling awal waktu untuk mendapatkan utas obrolan. - Gunakan
results_per_page
untuk menentukan jumlah maksimum utas obrolan yang dikembalikan per halaman.
Iterator dari [ChatThreadItem]
adalah respons yang dikembalikan dari pencantuman utas.
from datetime import datetime, timedelta
start_time = datetime.utcnow() - timedelta(days=2)
chat_threads = chat_client.list_chat_threads(results_per_page=5, start_time=start_time)
for chat_thread_item_page in chat_threads.by_page():
for chat_thread_item in chat_thread_item_page:
print(chat_thread_item)
print('Chat Thread Id: ', chat_thread_item.id)
Mengirim pesan ke utas obrolan
Gunakan metode send_message
untuk mengirim pesan ke utas obrolan yang baru saja Anda buat, yang diidentifikasi dengan thread_id
.
- Gunakan
content
untuk menyediakan konten pesan obrolan. - Gunakan
chat_message_type
untuk menentukan jenis konten pesan. Nilai yang mungkin adalahtext
danhtml
. Jika Anda tidak menentukan nilai, defaultnya adalahtext
. - Gunakan
sender_display_name
untuk menentukan nama tampilan pengirim. - Gunakan
metadata
secara opsional untuk menyertakan data tambahan yang ingin Anda kirim bersama pesan. Bidang ini menyediakan mekanisme bagi pengembang untuk memperluas fungsionalitas pesan obrolan dan menambahkan informasi kustom untuk kasus penggunaan Anda. Misalnya, saat berbagi tautan file di pesan, Anda mungkin ingin menambahkan 'hasAttachment:true' dalam metadata sehingga aplikasi penerima dapat mengurainya dan menampilkannya.
SendChatMessageResult
adalah respons yang dikembalikan dari pengiriman pesan. Ini berisi ID, yang merupakan ID unik pesan.
from azure.communication.chat import ChatMessageType
topic = "test topic"
create_chat_thread_result = chat_client.create_chat_thread(topic)
thread_id = create_chat_thread_result.chat_thread.id
chat_thread_client = chat_client.get_chat_thread_client(create_chat_thread_result.chat_thread.id)
content='Please take a look at the attachment'
sender_display_name='sender name'
metadata={
'hasAttachment': 'true',
'attachmentUrl': 'https://contoso.com/files/attachment.docx'
}
# specify chat message type with pre-built enumerations
send_message_result_w_enum = chat_thread_client.send_message(content=content, sender_display_name=sender_display_name, chat_message_type=ChatMessageType.TEXT, metadata=metadata)
print("Message sent: id: ", send_message_result_w_enum.id)
Menerima pesan obrolan dari utas obrolan
Anda dapat mengambil pesan obrolan dengan melakukan polling pada metode list_messages
pada interval tertentu.
- Gunakan
results_per_page
untuk menentukan jumlah maksimum pesan yang akan dikembalikan per halaman. - Gunakan
start_time
untuk menentukan titik paling awal waktu untuk mendapatkan pesan.
Iterator dari [ChatMessage]
adalah respons yang dikembalikan dari pencantuman pesan.
from datetime import datetime, timedelta
start_time = datetime.utcnow() - timedelta(days=1)
chat_messages = chat_thread_client.list_messages(results_per_page=1, start_time=start_time)
for chat_message_page in chat_messages.by_page():
for chat_message in chat_message_page:
print("ChatMessage: Id=", chat_message.id, "; Content=", chat_message.content.message)
list_messages
mengembalikan versi terbaru pesan, termasuk setiap pengeditan atau penghapusan yang terjadi pada pesan dengan menggunakan update_message
dan delete_message
. Untuk pesan yang dihapus, ChatMessage.deleted_on
mengembalikan nilai datetime
yang menunjukkan waktu kapan pesan ini dihapus. Untuk pesan yang diedit, ChatMessage.edited_on
mengembalikan nilai datetime
yang menunjukkan waktu kapan pesan diedit. Anda dapat mengakses waktu asli pembuatan pesan dengan menggunakan ChatMessage.created_on
, yang dapat digunakan untuk memesan pesan.
list_messages
mengembalikan jenis pesan yang berbeda, yang dapat diidentifikasi dengan ChatMessage.type
.
Untuk informasi selengkapnya, lihat Jenis pesan.
Mengirim tanda terima dibaca
Anda menggunakan metode send_read_receipt
untuk memposting peristiwa tanda terima baca ke utas, dengan atas nama pengguna.
- Gunakan
message_id
untuk menentukan ID pesan terbaru yang dibaca oleh pengguna saat ini.
content='hello world'
send_message_result = chat_thread_client.send_message(content)
chat_thread_client.send_read_receipt(message_id=send_message_result.id)
Menambahkan pengguna sebagai peserta ke utas obrolan
Ketika membuat utas obrolan, Anda kemudian dapat menambahkan dan menghapus pengguna darinya. Dengan menambahkan pengguna, Anda memberi mereka akses untuk dapat mengirim pesan ke utas obrolan, dan menambahkan atau menghapus peserta lain. Sebelum memanggil metode add_participants
, pastikan Anda telah memperoleh token akses dan identitas baru untuk pengguna tersebut. Pengguna memerlukan token akses tersebut untuk menginisialisasi klien obrolan.
Anda dapat menambahkan satu atau beberapa pengguna ke utas obrolan dengan menggunakan metode add_participants
, dengan ketentuan token akses dan identitas baru tersedia untuk semua pengguna.
list(tuple(ChatParticipant, CommunicationError))
dikembalikan. Ketika peserta berhasil ditambahkan, daftar kosong diharapkan. Jika Anda mengalami kesalahan saat menambahkan peserta, daftar diisi dengan peserta yang gagal, bersama dengan kesalahan yang dialami.
from azure.communication.identity import CommunicationIdentityClient
from azure.communication.chat import ChatParticipant
from datetime import datetime
# create 2 users
identity_client = CommunicationIdentityClient.from_connection_string('<connection_string>')
new_users = [identity_client.create_user() for i in range(2)]
# # conversely, you can also add an existing user to a chat thread; provided the user_id is known
# from azure.communication.identity import CommunicationUserIdentifier
#
# user_id = 'some user id'
# user_display_name = "Wilma Flinstone"
# new_user = CommunicationUserIdentifier(user_id)
# participant = ChatParticipant(
# identifier=new_user,
# display_name=user_display_name,
# share_history_time=datetime.utcnow())
participants = []
for _user in new_users:
chat_thread_participant = ChatParticipant(
identifier=_user,
display_name='Fred Flinstone',
share_history_time=datetime.utcnow()
)
participants.append(chat_thread_participant)
response = chat_thread_client.add_participants(participants)
def decide_to_retry(error, **kwargs):
"""
Insert some custom logic to decide if retry is applicable based on error
"""
return True
# verify if all users has been successfully added or not
# in case of partial failures, you can retry to add all the failed participants
retry = [p for p, e in response if decide_to_retry(e)]
if retry:
chat_thread_client.add_participants(retry)
Mencantumkan peserta utas dalam utas obrolan
Serupa dengan menambahkan peserta, Anda juga dapat mencantumkan peserta dari utas.
Gunakan list_participants
untuk mengambil peserta utas. Kedua perintah berikut bersifat opsional:
- Gunakan
results_per_page
untuk menentukan jumlah maksimum peserta yang akan dikembalikan per halaman. - Gunakan
skip
untuk melompati peserta hingga posisi tertentu dalam respons.
Iterator dari [ChatParticipant]
adalah respons yang dikembalikan dari pencantuman peserta.
chat_thread_participants = chat_thread_client.list_participants()
for chat_thread_participant_page in chat_thread_participants.by_page():
for chat_thread_participant in chat_thread_participant_page:
print("ChatParticipant: ", chat_thread_participant)
Menjalankan kode
Menjalankan aplikasi dari direktori aplikasi Anda dengan perintah python
.
python start-chat.py
Kode Sampel
Menemukan kode final untuk mulai cepat ini di GitHub.
Prasyarat
Akun Azure dengan langganan aktif. Buat akun secara gratis.
Java Development Kit (JDK) versi 8 atau lebih tinggi.
Membuat sumber daya Azure Communication Services. Untuk detailnya, lihat Membuat sumber daya Azure Communication Services. Anda harus merekam titik akhir sumber daya dan string koneksi untuk mulai cepat ini.
Token Akses Pengguna. Pastikan untuk mengatur cakupan ke obrolan, dan catat string token serta string user_id. Anda juga dapat menggunakan Azure CLI dan menjalankan perintah di bawah ini dengan string koneksi Anda untuk membuat pengguna dan token akses.
az communication identity token issue --scope chat --connection-string "yourConnectionString"
Untuk detailnya, lihat Menggunakan Azure CLI untuk Membuat dan Mengelola Token Akses.
Menyiapkan
Membuat aplikasi Java baru
Buka terminal atau jendela perintah Anda dan arahkan ke direktori tempat Anda ingin membuat aplikasi Java. Jalankan perintah di bawah ini untuk menghasilkan proyek Java dari templat maven-arketipe-quickstart.
mvn archetype:generate -DgroupId=com.communication.quickstart -DartifactId=communication-quickstart -DarchetypeArtifactId=maven-archetype-quickstart -DarchetypeVersion=1.4 -DinteractiveMode=false
Anda akan melihat bahwa tujuan 'buat' membuat direktori dengan nama yang sama dengan artifactId. Di bawah direktori ini, src/main/java directory
berisi kode sumber proyek, direktori src/test/java
berisi sumber pengujian, dan file pom.xml adalah Project Object Model proyek, atau POM.
Perbarui file POM aplikasi Anda untuk menggunakan Java 8 atau versi yang lebih baru:
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<maven.compiler.source>1.8</maven.compiler.source>
<maven.compiler.target>1.8</maven.compiler.target>
</properties>
Menambahkan referensi paket untuk SDK Obrolan
Dalam file POM Anda, referensikan paket azure-communication-chat
dengan Chat API:
<dependency>
<groupId>com.azure</groupId>
<artifactId>azure-communication-chat</artifactId>
<version><!-- Please refer to https://search.maven.org/artifact/com.azure/azure-communication-chat for the latest version --></version>
</dependency>
Untuk autentikasi, klien Anda perlu mereferensikan paket azure-communication-common
:
<dependency>
<groupId>com.azure</groupId>
<artifactId>azure-communication-common</artifactId>
<version><!-- Please refer to https://search.maven.org/artifact/com.azure/azure-communication-common for the latest version --></version>
</dependency>
Model objek
Kelas dan antarmuka berikut menangani beberapa fitur utama SDK Obrolan Azure Communication Services untuk Java.
Nama | Deskripsi |
---|---|
ChatClient | Kelas ini diperlukan karena berfungsi sebagai obrolan. Anda membuat contoh dari informasi langganan Anda, dan menggunakannya untuk membuat, mendapatkan, dan menghapus utas. |
ChatAsyncClient | Kelas ini diperlukan untuk fungsionalitas Obrolan asinkron. Anda membuat contoh dari informasi langganan Anda, dan menggunakannya untuk membuat, mendapatkan, dan menghapus utas. |
ChatThreadClient | Kelas ini diperlukan untuk fungsionalitas Utas Obrolan. Anda mendapatkan instans melalui ChatClient dan menggunakannya untuk mengirim/menerima/memperbarui/menghapus pesan, menambah/menghapus/mendapatkan pengguna, mengirim pemberitahuan pengetikan dan tanda terima baca. |
ChatThreadAsyncClient | Kelas ini diperlukan untuk fungsionalitas Utas Obrolan asinkron. Anda mendapatkan instans melalui ChatAsyncClient dan menggunakannya untuk mengirim/menerima/memperbarui/menghapus pesan, menambah/menghapus/mendapatkan pengguna, mengirim pemberitahuan pengetikan dan tanda terima baca. |
Membuat klien obrolan
Untuk membuat klien obrolan, Anda akan menggunakan titik akhir Communications Service dan token akses yang dibuat sebagai bagian dari langkah-langkah prasyarat. Token akses pengguna memungkinkan Anda membangun aplikasi klien yang langsung mengautentikasi ke Azure Communication Services. Setelah membuat token ini di server Anda, teruskan kembali ke perangkat klien. Anda perlu menggunakan kelas CommunicationTokenCredential dari SDK Umum untuk meneruskan token ke klien obrolan Anda.
Pelajari selengkapnya tentang Arsitektur Obrolan
Saat menambahkan laporan impor, pastikan untuk hanya menambahkan impor dari namespace com.azure.communication.chat dan com.azure.communication.chat.models, dan bukan dari namespace com.azure.communication.chat.implementation. Dalam file App.java yang dibuat melalui Maven, Anda dapat menggunakan kode berikut untuk memulai dengan:
package com.communication.quickstart;
import com.azure.communication.chat.*;
import com.azure.communication.chat.models.*;
import com.azure.communication.common.*;
import com.azure.core.http.rest.PagedIterable;
import java.io.*;
import java.util.*;
public class App
{
public static void main( String[] args ) throws IOException
{
System.out.println("Azure Communication Services - Chat Quickstart");
// Your unique Azure Communication service endpoint
String endpoint = "<replace with your resource endpoint>";
// User access token fetched from your trusted service
String userAccessToken = "<USER_ACCESS_TOKEN>";
// Create a CommunicationTokenCredential with the given access token, which is only valid until the token is valid
CommunicationTokenCredential userCredential = new CommunicationTokenCredential(userAccessToken);
// Initialize the chat client
final ChatClientBuilder builder = new ChatClientBuilder();
builder.endpoint(endpoint)
.credential(userCredential);
ChatClient chatClient = builder.buildClient();
}
}
Memulai utas obrolan
Gunakan metode createChatThread
untuk membuat utas obrolan.
createChatThreadOptions
digunakan untuk mendeskripsikan permintaan utas.
- Gunakan parameter
topic
konstruktor untuk memberikan topik pada obrolan ini; Topik dapat diperbarui setelah utas obrolan dibuat menggunakan fungsiUpdateThread
. - Gunakan
participants
untuk mencantumkan peserta utas untuk ditambahkan ke utas.ChatParticipant
membawa pengguna yang Anda buat di mulai cepat Token Akses Pengguna.
CreateChatThreadResult
adalah respons yang dikembalikan dari pembuatan utas obrolan.
Ini berisi getChatThread()
metode, yang mengembalikan objek yang dapat digunakan untuk mendapatkan klien utas ChatThread
tempat Anda bisa mendapatkan ChatThreadClient
untuk melakukan operasi pada utas yang dibuat: menambahkan peserta, mengirim pesan, dll. Objek ChatThread
juga berisi getId()
metode , yang mengambil ID unik utas.
CommunicationUserIdentifier identity1 = new CommunicationUserIdentifier("<USER_1_ID>");
CommunicationUserIdentifier identity2 = new CommunicationUserIdentifier("<USER_2_ID>");
ChatParticipant firstThreadParticipant = new ChatParticipant()
.setCommunicationIdentifier(identity1)
.setDisplayName("Participant Display Name 1");
ChatParticipant secondThreadParticipant = new ChatParticipant()
.setCommunicationIdentifier(identity2)
.setDisplayName("Participant Display Name 2");
CreateChatThreadOptions createChatThreadOptions = new CreateChatThreadOptions("Topic")
.addParticipant(firstThreadParticipant)
.addParticipant(secondThreadParticipant);
CreateChatThreadResult result = chatClient.createChatThread(createChatThreadOptions);
String chatThreadId = result.getChatThread().getId();
Daftar utas obrolan
Gunakan metode listChatThreads
untuk mengambil daftar utas obrolan yang ada.
PagedIterable<ChatThreadItem> chatThreads = chatClient.listChatThreads();
chatThreads.forEach(chatThread -> {
System.out.printf("ChatThread id is %s.\n", chatThread.getId());
});
Mendapatkan klien utas obrolan
Metode getChatThreadClient
ini mengembalikan klien utas untuk utas yang sudah ada. Ini dapat digunakan untuk melakukan operasi pada utas yang dibuat: menambahkan peserta, mengirim pesan, dll. chatThreadId
adalah ID unik dari utas obrolan yang ada.
ChatThreadClient chatThreadClient = chatClient.getChatThreadClient(chatThreadId);
Mengirim pesan ke utas obrolan
sendMessage
Gunakan metode untuk mengirim pesan ke utas yang Anda buat, yang diidentifikasi oleh chatThreadId.
sendChatMessageOptions
digunakan untuk mendeskripsikan permintaan pesan obrolan.
- Gunakan
content
untuk menyediakan konten pesan obrolan. - Gunakan
type
untuk menentukan jenis konten pesan obrolan, TEXT atau HTML. - Gunakan
senderDisplayName
untuk menentukan nama tampilan pengirim. - Gunakan
metadata
secara opsional untuk menyertakan data tambahan yang ingin Anda kirim bersama pesan. Bidang ini menyediakan mekanisme bagi pengembang untuk memperluas fungsionalitas pesan obrolan dan menambahkan informasi kustom untuk kasus penggunaan Anda. Misalnya, saat berbagi tautan file dalam pesan, Anda mungkin ingin menambahkanhasAttachment:true
metadata sehingga aplikasi penerima dapat mengurainya dan menampilkannya.
Respons sendChatMessageResult
berisi id
, yang merupakan ID unik pesan.
Map<String, String> metadata = new HashMap<String, String>();
metadata.put("hasAttachment", "true");
metadata.put("attachmentUrl", "https://contoso.com/files/attachment.docx");
SendChatMessageOptions sendChatMessageOptions = new SendChatMessageOptions()
.setContent("Please take a look at the attachment")
.setType(ChatMessageType.TEXT)
.setSenderDisplayName("Sender Display Name")
.setMetadata(metadata);
SendChatMessageResult sendChatMessageResult = chatThreadClient.sendMessage(sendChatMessageOptions);
String chatMessageId = sendChatMessageResult.getId();
Menerima pesan obrolan dari utas obrolan
Anda dapat mengambil pesan obrolan dengan mengumpulkan metode listMessages
pada klien utas obrolan pada interval tertentu.
chatThreadClient.listMessages().forEach(message -> {
System.out.printf("Message id is %s.\n", message.getId());
});
listMessages
menampilkan versi terbaru pesan, termasuk pengeditan atau penghapusan yang terjadi pada pesan menggunakan .editMessage()
dan .deleteMessage()
. Untuk pesan yang dihapus, chatMessage.getDeletedOn()
akan menampilkan nilai tanggalwaktu yang menunjukkan kapan pesan tersebut dihapus. Untuk pesan yang diedit, chatMessage.getEditedOn()
akan menampilkan tanggalwaktu yang menunjukkan kapan pesan diedit. Waktu asli pembuatan pesan dapat diakses menggunakan chatMessage.getCreatedOn()
, dan dapat digunakan untuk memesan pesan.
Baca selengkapnya tentang jenis pesan di sini: Jenis Pesan.
Mengirim tanda terima dibaca
Gunakan metode sendReadReceipt
untuk memposting peristiwa tanda terima baca ke utas obrolan, atas nama pengguna.
chatMessageId
adalah ID unik dari pesan obrolan yang dibaca.
String chatMessageId = message.getId();
chatThreadClient.sendReadReceipt(chatMessageId);
Daftar peserta obrolan
Gunakan listParticipants
untuk mengambil kumpulan halaman yang berisi peserta utas obrolan yang diidentifikasi oleh chatThreadId.
PagedIterable<ChatParticipant> chatParticipantsResponse = chatThreadClient.listParticipants();
chatParticipantsResponse.forEach(chatParticipant -> {
System.out.printf("Participant id is %s.\n", ((CommunicationUserIdentifier) chatParticipant.getCommunicationIdentifier()).getId());
});
Menambahkan pengguna sebagai peserta ke utas obrolan
Setelah utas obrolan dibuat, Anda kemudian dapat menambahkan dan menghapus pengguna utas tersebut. Dengan menambahkan pengguna, Anda memberi mereka akses untuk mengirim pesan ke utas obrolan, dan menambahkan/menghapus peserta lain. Anda harus memulai dengan mendapatkan token akses dan identitas baru untuk pengguna tersebut. Sebelum memanggil metode addParticipants, pastikan Anda telah memperoleh token akses dan identitas baru untuk pengguna tersebut. Pengguna akan membutuhkan token akses tersebut untuk menginisialisasi klien obrolan mereka.
Gunakan metode addParticipants
untuk menambahkan peserta ke utas.
communicationIdentifier
, wajib, adalah CommunicationIdentifier yang Anda buat dengan CommunicationIdentityClient di mulai cepat Token Akses Pengguna.displayName
, opsional, adalah nama tampilan untuk peserta utas.shareHistoryTime
, opsional, adalah waktu saat riwayat obrolan dibagikan dengan peserta. Untuk membagikan riwayat sejak awal utas obrolan, atur properti ini ke tanggal yang sama dengan, atau kurang dari waktu pembuatan utas. Untuk tidak membagikan riwayat sebelum saat peserta ditambahkan, atur riwayat ke tanggal saat ini. Untuk membagikan sebagian riwayat, atur ke tanggal yang diperlukan.
List<ChatParticipant> participants = new ArrayList<ChatParticipant>();
CommunicationUserIdentifier identity3 = new CommunicationUserIdentifier("<USER_3_ID>");
CommunicationUserIdentifier identity4 = new CommunicationUserIdentifier("<USER_4_ID>");
ChatParticipant thirdThreadParticipant = new ChatParticipant()
.setCommunicationIdentifier(identity3)
.setDisplayName("Display Name 3");
ChatParticipant fourthThreadParticipant = new ChatParticipant()
.setCommunicationIdentifier(identity4)
.setDisplayName("Display Name 4");
participants.add(thirdThreadParticipant);
participants.add(fourthThreadParticipant);
chatThreadClient.addParticipants(participants);
Menjalankan kode
Buka direktori yang berisi file pom.xml dan kompilasikan proyek dengan perintah mvn
berikut.
mvn compile
Kemudian, bangun paketnya.
mvn package
Jalankan perintah mvn
berikut untuk menjalankan aplikasi.
mvn exec:java -Dexec.mainClass="com.communication.quickstart.App" -Dexec.cleanupDaemonThreads=false
Kode Sampel
Menemukan kode final untuk mulai cepat ini di GitHub.
Prasyarat
Sebelum memulai, pastikan untuk:
Buat akun Azure dengan langganan aktif. Untuk detailnya, lihat Membuat akun gratis.
Install Android Studio, kami akan menggunakan Android Studio untuk membuat aplikasi Android untuk mulai cepat mengintall dependensi.
Membuat sumber daya Azure Communication Services. Untuk detailnya, lihat Membuat sumber daya Azure Communication Services. Anda harus merekam titik akhir sumber daya dan string koneksi untuk mulai cepat ini.
Buat dua Pengguna Communication Services dan terbitkan Token Akses Pengguna. Pastikan untuk mengatur cakupan ke obrolan, dan catat string token dan string user_id. Pada mulai cepat ini, kami akan membuat rangkaian dengan peserta awal dan kemudian menambahkan peserta ke dua pada rangkaian. Anda juga dapat menggunakan Azure CLI dan menjalankan perintah di bawah ini dengan string koneksi Anda untuk membuat pengguna dan token akses.
az communication identity token issue --scope chat --connection-string "yourConnectionString"
Untuk detailnya, lihat Menggunakan Azure CLI untuk Membuat dan Mengelola Token Akses.
Menyiapkan
Buat aplikasi android baru
- Buka Android Studio dan pilih
Create a new project
. - Pada windows selanjutnya, pilih
Empty Activity
sebagai templat proyek. - Ketika memilih opsi, masukan
ChatQuickstart
sebagai nama proyek. - Klik selanjurnya dan pilih petunjuk dimana Anda ingin membuat proyeknya.
Instal pustaka
Kami akan menggunakan Gradle untuk menginstall Azure Communication Services dependensi. Dari baris perintah, navigasikan kedalam direktori akar dari proyek ChatQuickstart
. Buka file aplikasi build.gradle dan tambahkan dependensi dibawah ini pada ChatQuickstart
target:
implementation 'com.azure.android:azure-communication-common:' + $azureCommunicationCommonVersion
implementation 'com.azure.android:azure-communication-chat:' + $azureCommunicationChatVersion
implementation 'org.slf4j:slf4j-log4j12:1.7.29'
Silakan merujuk ke https://search.maven.org/artifact/com.azure.android/azure-communication-common dan https://search.maven.org/artifact/com.azure.android/azure-communication-chat untuk angka versi terbaru.
Kecualikan file meta pada paket opsi pada build.gradle akar
android {
...
packagingOptions {
exclude 'META-INF/DEPENDENCIES'
exclude 'META-INF/LICENSE'
exclude 'META-INF/license'
exclude 'META-INF/NOTICE'
exclude 'META-INF/notice'
exclude 'META-INF/ASL2.0'
exclude("META-INF/*.md")
exclude("META-INF/*.txt")
exclude("META-INF/*.kotlin_module")
}
}
(Alternatif) Untuk menginstal pustaka melalui Maven
Untuk mengimpor pustaka pada proyek menggunakan sistem pembuatan Maven, tambahkan pada dependencies
file bagian aplikasi Anda pom.xml
, menentukan ID artefaknya dan versi yang ingin Anda gunakan:
<dependency>
<groupId>com.azure.android</groupId>
<artifactId>azure-communication-chat</artifactId>
<version><!-- Please refer to https://search.maven.org/artifact/com.azure.android/azure-communication-chat for the latest version --></version>
</dependency>
Menyiapkan Azure Function
Silakan lihat integrasi Azure Function untuk detailnya. Sebaiknya integrasikan dengan Azure Function untuk menghindari parameter aplikasi hard-coding.
Siapkan konstanta aplikasi:
Buat kelas ApplicationConstants
yang menyimpan semua konstanta aplikasi:
public class ApplicationConstants {
public static final String SDK_VERSION = "<your_version>";
public final static String SDK_NAME = "azure-communication-com.azure.android.communication.chat";
public final static String APPLICATION_ID = "Chat_Test_App";
public final static String TAG = "[Chat Test App]";
public static CommunicationTokenCredential COMMUNICATION_TOKEN_CREDENTIAL;
}
Siapkan tempat penampung
Buka dan edit file MainActivity.java
. Dalam mulai cepat ini, kita akan menambahkan kode kita ke MainActivity
, dan melihat output di konsol. Mulai cepat ini tidak membahas pembuatan UI. Di bagian atas file, impor Azure Communication Common
, Azure Communication Chat
, dan pustaka sistem lainnya:
import com.azure.android.communication.chat.*;
import com.azure.android.communication.chat.models.*;
import com.azure.android.communication.common.*;
import android.os.Bundle;
import android.util.Log;
import android.widget.Toast;
import com.jakewharton.threetenabp.AndroidThreeTen;
import java.util.ArrayList;
import java.util.List;
Salin kode berikut pada kelas MainActivity
dalam file MainActivity.java
:
private ChatAsyncClient chatAsyncClient;
private void log(String msg) {
Log.i(TAG, msg);
Toast.makeText(this, msg, Toast.LENGTH_LONG).show();
}
@Override
protected void onStart() {
super.onStart();
try {
AndroidThreeTen.init(this);
// Initialize application parameters if one of the conditions in '### Initialize Application Parameters' are met.
// <CREATE A CHAT CLIENT>
// <CREATE A CHAT THREAD>
// <CREATE A CHAT THREAD CLIENT>
// <SEND A MESSAGE>
// <RECEIVE CHAT MESSAGES>
// <ADD A USER>
// <LIST USERS>
// <REMOVE A USER>
// <<SEND A TYPING NOTIFICATION>>
// <<SEND A READ RECEIPT>>
// <<LIST READ RECEIPTS>>
} catch (Exception e){
System.out.println("Quickstart failed: " + e.getMessage());
}
}
Menginisialisasi Parameter Aplikasi
Catatan
Inisialisasi ApplicationConstants
perlu ditambahkan jika MainActivity.java
SALAH satu kondisi berikut terpenuhi: 1. Fitur pemberitahuan push TIDAK diaktifkan. 2. Versi untuk pustaka Azure Communication Chat untuk Android adalah < '2.0.0'. Jika tidak, silakan lihat langkah 11 di pemberitahuan push Android. Silakan lihat contoh APLIKASI versi SDK yang Anda gunakan untuk referensi.
ACS_ENDPOINT
, FIRST_USER_ID
dan FIRST_USER_ACCESS_TOKEN
dikembalikan dari memanggil Azure Function. Silakan lihat integrasi Azure Function untuk detailnya. Kami menggunakan respons dari memanggil Azure Function untuk menginisialisasi daftar parameter:
ACS_ENDPOINT
: titik akhir sumber daya Communication Services Anda.FIRST_USER_ID
danSECOND_USER_ID
: ID pengguna Communication Services yang valid yang dihasilkan oleh sumber daya Communication Services Anda.FIRST_USER_ACCESS_TOKEN
: token akses Communication Services untuk<FIRST_USER_ID>
.
Blok kode untuk menginisialisasi parameter aplikasi dengan memanggil Azure Function:
try {
UserTokenClient userTokenClient = new UserTokenClient(AZURE_FUNCTION_URL);
//First user context
userTokenClient.getNewUserContext();
ACS_ENDPOINT = userTokenClient.getACSEndpoint();
FIRST_USER_ID = userTokenClient.getUserId();
FIRST_USER_ACCESS_TOKEN = userTokenClient.getUserToken();
COMMUNICATION_TOKEN_CREDENTIAL = new CommunicationTokenCredential(FIRST_USER_ACCESS_TOKEN);
//Second user context
userTokenClient.getNewUserContext();
SECOND_USER_ID = userTokenClient.getUserId();
} catch (Throwable throwable) {
//Your handling code
logger.logThrowableAsError(throwable);
}
Membuat klien obrolan
Ganti komentar <CREATE A CHAT CLIENT>
dengan kode berikut (letakkan pernyataan impor di atas file):
import com.azure.android.core.http.policy.UserAgentPolicy;
chatAsyncClient = new ChatClientBuilder()
.endpoint(endpoint)
.credential(new CommunicationTokenCredential(firstUserAccessToken))
.addPolicy(new UserAgentPolicy(APPLICATION_ID, SDK_NAME, sdkVersion))
.buildAsyncClient();
Model objek
Kelas dan tatap muka berikut menangani beberapa fitur utama SDK Obrolan Azure Communication Services untuk JavaScript.
Nama | Deskripsi |
---|---|
ChatClient/ChatAsyncClient | Kelas ini diperlukan karena berfungsi sebagai obrolan. Anda membuat instans dari informasi langganan Anda, dan menggunakannya untuk membuat, mendapatkan, menghapus utas, dan berlangganan acara obrolan. |
ChatThreadClient/ChatThreadAsyncClient | Kelas ini diperlukan untuk fungsionalitas Utas Obrolan. Anda mendapatkan instans melalui ChatClient dan menggunakannya untuk mengirim/menerima/memperbarui/menghapus pesan, menambah/menghapus/mendapatkan pengguna, mengirim pemberitahuan pengetikan dan tanda terima baca. |
Memulai utas obrolan
Kami akan menggunakan ChatAsyncClient
untuk membuat utas baru dengan pengguna awal.
Ganti komentar <CREATE A CHAT THREAD>
dengan kode berikut:
// A list of ChatParticipant to start the thread with.
List<ChatParticipant> participants = new ArrayList<>();
// The display name for the thread participant.
String displayName = "initial participant";
participants.add(new ChatParticipant()
.setCommunicationIdentifier(new CommunicationUserIdentifier(firstUserId))
.setDisplayName(displayName));
// The topic for the thread.
final String topic = "General";
// Optional, set a repeat request ID.
final String repeatabilityRequestID = "";
// Options to pass to the create method.
CreateChatThreadOptions createChatThreadOptions = new CreateChatThreadOptions()
.setTopic(topic)
.setParticipants(participants)
.setIdempotencyToken(repeatabilityRequestID);
CreateChatThreadResult createChatThreadResult =
chatAsyncClient.createChatThread(createChatThreadOptions).get();
ChatThreadProperties chatThreadProperties = createChatThreadResult.getChatThreadProperties();
threadId = chatThreadProperties.getId();
Mendapatkan klien utas obrolan
Sekarang setelah kami membuat utas Obrolan, kami akan mendapatkan ChatThreadAsyncClient
untuk melakukan pekerjaan di dalam utas. Ganti komentar <CREATE A CHAT THREAD CLIENT>
dengan kode berikut:
ChatThreadAsyncClient chatThreadAsyncClient = new ChatThreadClientBuilder()
.endpoint(endpoint)
.credential(new CommunicationTokenCredential(firstUserAccessToken))
.addPolicy(new UserAgentPolicy(APPLICATION_ID, SDK_NAME, sdkVersion))
.chatThreadId(threadId)
.buildAsyncClient();
Mengirim pesan ke utas obrolan
Kami akan mengirim pesan ke utas tersebut sekarang.
Ganti komentar <SEND A MESSAGE>
dengan kode berikut:
// The chat message content, required.
final String content = "Please take a look at the attachment";
// The display name of the sender, if null (i.e. not specified), an empty name will be set.
final String senderDisplayName = "An important person";
// Use metadata optionally to include any additional data you want to send along with the message.
// This field provides a mechanism for developers to extend chat message functionality and add
// custom information for your use case. For example, when sharing a file link in the message, you
// might want to add 'hasAttachment:true' in metadata so that recipient's application can parse
// that and display accordingly.
final Map<String, String> metadata = new HashMap<String, String>();
metadata.put("hasAttachment", "true");
metadata.put("attachmentUrl", "https://contoso.com/files/attachment.docx");
SendChatMessageOptions chatMessageOptions = new SendChatMessageOptions()
.setType(ChatMessageType.TEXT)
.setContent(content)
.setSenderDisplayName(senderDisplayName)
.setMetadata(metadata);
// A string is the response returned from sending a message, it is an id, which is the unique ID
// of the message.
chatMessageId = chatThreadAsyncClient.sendMessage(chatMessageOptions).get().getId();
Menerima pesan obrolan dari utas obrolan
Pemberitahuan real-time
Dengan real-time signaling, Anda dapat berlangganan pesan masuk baru dan memperbarui pesan saat ini di memori. Azure Communication Services mendukung daftar acar yang dapat Anda ikuti untuk .
Ganti komentar <RECEIVE CHAT MESSAGES>
dengan kode berikut (letakkan pernyataan impor di atas file):
// Start real time notification
chatAsyncClient.startRealtimeNotifications(firstUserAccessToken, getApplicationContext());
// Register a listener for chatMessageReceived event
chatAsyncClient.addEventHandler(ChatEventType.CHAT_MESSAGE_RECEIVED, (ChatEvent payload) -> {
ChatMessageReceivedEvent chatMessageReceivedEvent = (ChatMessageReceivedEvent) payload;
// You code to handle chatMessageReceived event
});
Penting
Masalah yang diketahui: Saat menggunakan Android Chat dan Calling SDK secara bersamaan dalam aplikasi yang sama, fitur notifikasi waktu nyata Chat SDK tidak berfungsi. Anda mungkin mendapatkan masalah penyelesaian dependensi. Saat kami sedang mengerjakan solusi, Anda dapat menonaktifkan fitur notifikasi real-time dengan menambahkan informasi dependesi berikut pada file aplikasi build.gradle dan sebagai gantinya melakukan polling pada GetMessages API untuk menampilkan pesan masuk kepada pengguna.
implementation ("com.azure.android:azure-communication-chat:1.0.0") {
exclude group: 'com.microsoft', module: 'trouter-client-android'
}
implementation 'com.azure.android:azure-communication-calling:1.0.0'
Perhatikan pembaruan di atas, jika aplikasi mencoba menyentuh salah satu notifikasi API seperti chatAsyncClient.startRealtimeNotifications()
or chatAsyncClient.addEventHandler()
, akan ada kesalahan runtime.
Pemberitahuan push
Silakan lihat pemberitahuan push Android untuk detailnya.
Menambahkan pengguna sebagai peserta ke utas obrolan
Ganti komentar <ADD A USER>
dengan kode berikut:
// The display name for the thread participant.
String secondUserDisplayName = "a new participant";
ChatParticipant participant = new ChatParticipant()
.setCommunicationIdentifier(new CommunicationUserIdentifier(secondUserId))
.setDisplayName(secondUserDisplayName);
chatThreadAsyncClient.addParticipant(participant);
Mencantumkan Daftar pengguna di utas
Ganti <LIST USERS>
komentar dengan kode berikut (letakan pernyataan impor pada bagian atas file):
import com.azure.android.core.rest.util.paging.PagedAsyncStream;
import com.azure.android.core.util.RequestContext;
// The maximum number of participants to be returned per page, optional.
int maxPageSize = 10;
// Skips participants up to a specified position in response.
int skip = 0;
// Options to pass to the list method.
ListParticipantsOptions listParticipantsOptions = new ListParticipantsOptions()
.setMaxPageSize(maxPageSize)
.setSkip(skip);
PagedAsyncStream<ChatParticipant> participantsPagedAsyncStream =
chatThreadAsyncClient.listParticipants(listParticipantsOptions, RequestContext.NONE);
participantsPagedAsyncStream.forEach(chatParticipant -> {
// You code to handle participant
});
Menghapus pengguna dari utas obrolan
Kami akan menghapus pengguna ke dua dari utas sekarang.
Ganti komentar <REMOVE A USER>
dengan kode berikut:
// Using the unique ID of the participant.
chatThreadAsyncClient.removeParticipant(new CommunicationUserIdentifier(secondUserId)).get();
Kirim pemberitahuan pengetikan
Ganti komentar <SEND A TYPING NOTIFICATION>
dengan kode berikut:
chatThreadAsyncClient.sendTypingNotification().get();
Kirim tanda terima baca
Kami akan mengirimkan tanda terima baca untuk pesan yang dikirim di atas.
Ganti komentar <SEND A READ RECEIPT>
dengan kode berikut:
chatThreadAsyncClient.sendReadReceipt(chatMessageId).get();
Daftar tanda terima yang telah dibaca
Ganti komentar <READ RECEIPTS>
dengan kode berikut:
// The maximum number of participants to be returned per page, optional.
maxPageSize = 10;
// Skips participants up to a specified position in response.
skip = 0;
// Options to pass to the list method.
ListReadReceiptOptions listReadReceiptOptions = new ListReadReceiptOptions()
.setMaxPageSize(maxPageSize)
.setSkip(skip);
PagedAsyncStream<ChatMessageReadReceipt> readReceiptsPagedAsyncStream =
chatThreadAsyncClient.listReadReceipts(listReadReceiptOptions, RequestContext.NONE);
readReceiptsPagedAsyncStream.forEach(readReceipt -> {
// You code to handle readReceipt
});
Menjalankan kode
Di Android Studio, tekan tombol Run untuk membuat dan menjalankan proyek. Pada konsol, Anda dapat melihat output dari kode dan output logger dari ChatClient.
Kode Sampel
Menemukan kode final untuk mulai cepat ini di GitHub.
Prasyarat
Sebelum memulai, pastikan untuk:
Buat akun Azure dengan langganan aktif. Untuk detailnya, lihat Membuat akun gratis.
Pasang Visual Studio
Membuat sumber daya Azure Communication Services. Untuk detailnya, lihat Membuat sumber daya Azure Communication Services. Anda harus merekam titik akhir sumber daya dan string koneksi untuk mulai cepat ini.
Token Akses Pengguna. Pastikan untuk mengatur cakupan ke obrolan, dan catat string token serta string user_id. Anda juga dapat menggunakan Azure CLI dan menjalankan perintah di bawah ini dengan string koneksi Anda untuk membuat pengguna dan token akses.
az communication identity token issue --scope chat --connection-string "yourConnectionString"
Untuk detailnya, lihat Menggunakan Azure CLI untuk Membuat dan Mengelola Token Akses.
Menyiapkan
Membuat aplikasi C# baru
Di jendela konsol (seperti cmd, PowerShell, atau Bash), gunakan perintah dotnet new
untuk membuat aplikasi konsol baru dengan nama ChatQuickstart
. Perintah ini membuat proyek C# "Halo Dunia" sederhana dengan file sumber tunggal: Program.cs.
dotnet new console -o ChatQuickstart
Ubah direktori Anda ke folder aplikasi yang baru dibuat dan gunakan perintah dotnet build
untuk mengompilasi aplikasi Anda.
cd ChatQuickstart
dotnet build
Pasang paket
Menginstal Azure Communication Chat SDK untuk .NET
dotnet add package Azure.Communication.Chat
Model objek
Kelas berikut menangani beberapa fitur utama Azure Communication Services Chat SDK untuk C#.
Nama | Deskripsi |
---|---|
ChatClient | Kelas ini diperlukan karena berfungsi sebagai obrolan. Anda membuat contoh dari informasi langganan Anda, dan menggunakannya untuk membuat, mendapatkan, dan menghapus utas. |
ChatThreadClient | Kelas ini diperlukan untuk fungsionalitas Utas Obrolan. Anda mendapatkan instans melalui ChatClient dan menggunakannya untuk mengirim/menerima/memperbarui/menghapus pesan, menambahkan/menghapus/mendapatkan peserta, mengirim pemberitahuan pengetikan, dan membaca tanda terima. |
Membuat klien obrolan
Untuk membuat klien obrolan, Anda akan menggunakan titik akhir Communication Services dan token akses yang dihasilkan sebagai bagian dari langkah-langkah prasyarat. Anda perlu menggunakan kelas CommunicationIdentityClient
dari SDK Identitas untuk membuat pengguna dan menerbitkan token untuk diteruskan ke klien obrolan Anda.
Pelajari selengkapnya tentang Token Akses Pengguna.
Mulai cepat ini tidak mencakup pembuatan tingkat layanan untuk mengelola token untuk aplikasi obrolan Anda, meskipun disarankan. Pelajari selengkapnya tentang Arsitektur Obrolan
Salin cuplikan kode berikut dan tempelkan ke file sumber: Program.cs
using Azure;
using Azure.Communication;
using Azure.Communication.Chat;
using System;
namespace ChatQuickstart
{
class Program
{
static async System.Threading.Tasks.Task Main(string[] args)
{
// Your unique Azure Communication service endpoint
Uri endpoint = new Uri("<replace with your resource endpoint>");
CommunicationTokenCredential communicationTokenCredential = new CommunicationTokenCredential(<Access_Token>);
ChatClient chatClient = new ChatClient(endpoint, communicationTokenCredential);
}
}
}
Memulai utas obrolan
Gunakan metode createChatThread
pada chatClient untuk membuat utas obrolan
- Gunakan
topic
untuk memberikan topik pada obrolan ini; Topik dapat diperbarui setelah utas obrolan dibuat menggunakan fungsiUpdateTopic
. - Gunakan properti
participants
untuk meneruskan daftar objek yang akan ditambahkan keChatParticipant
utas obrolan. ObjekChatParticipant
diinisialisasi dengan objekCommunicationIdentifier
.CommunicationIdentifier
bisa berupa jenisCommunicationUserIdentifier
,MicrosoftTeamsUserIdentifier
, atauPhoneNumberIdentifier
. Misalnya, untuk mendapatkanCommunicationIdentifier
objek, Anda harus meneruskan ID Akses yang Anda buat dengan mengikuti instruksi untuk Membuat pengguna
Objek respons dari metode createChatThread
berisi detail chatThread
. Untuk berinteraksi dengan operasi utas obrolan seperti menambahkan peserta, mengirim pesan, menghapus pesan, dll., instans klien chatThreadClient
perlu diinisiasi menggunakan metode GetChatThreadClient
pada klien ChatClient
.
var chatParticipant = new ChatParticipant(identifier: new CommunicationUserIdentifier(id: "<Access_ID>"))
{
DisplayName = "UserDisplayName"
};
CreateChatThreadResult createChatThreadResult = await chatClient.CreateChatThreadAsync(topic: "Hello world!", participants: new[] { chatParticipant });
ChatThreadClient chatThreadClient = chatClient.GetChatThreadClient(threadId: createChatThreadResult.ChatThread.Id);
string threadId = chatThreadClient.Id;
Mendapatkan klien utas obrolan
Metode GetChatThreadClient
ini mengembalikan klien utas untuk utas yang sudah ada. Ini dapat digunakan untuk melakukan operasi pada utas yang dibuat: menambahkan anggota, mengirim pesan, dll. threadId adalah ID unik dari utas obrolan yang sudah ada.
string threadId = "<THREAD_ID>";
ChatThreadClient chatThreadClient = chatClient.GetChatThreadClient(threadId: threadId);
Mencantumkan semua utas obrolan
Gunakan GetChatThreads
untuk mengambil semua utas obrolan tempat pengguna menjadi bagiannya.
AsyncPageable<ChatThreadItem> chatThreadItems = chatClient.GetChatThreadsAsync();
await foreach (ChatThreadItem chatThreadItem in chatThreadItems)
{
Console.WriteLine($"{ chatThreadItem.Id}");
}
Mengirim pesan ke utas obrolan
Gunakan SendMessage
untuk mengirim pesan ke utas.
- Gunakan
content
untuk menyediakan konten untuk pesan, diperlukan. - Gunakan
type
untuk jenis konten pesan seperti 'Teks' atau 'Html'. Jika tidak ditentukan, akan diatur sebagai 'Teks'. - Gunakan
senderDisplayName
untuk menentukan nama tampilan pengirim. Jika tidak ditentukan, akan diatur sebagai string kosong. - Gunakan
metadata
secara opsional untuk menyertakan data tambahan yang ingin Anda kirim bersama pesan. Bidang ini menyediakan mekanisme bagi pengembang untuk memperluas fungsionalitas pesan obrolan dan menambahkan informasi kustom untuk kasus penggunaan Anda. Misalnya, saat berbagi tautan file di pesan, Anda mungkin ingin menambahkan 'hasAttachment:true' dalam metadata sehingga aplikasi penerima dapat mengurainya dan menampilkannya.
SendChatMessageOptions sendChatMessageOptions = new SendChatMessageOptions()
{
Content = "Please take a look at the attachment",
MessageType = ChatMessageType.Text
};
sendChatMessageOptions.Metadata["hasAttachment"] = "true";
sendChatMessageOptions.Metadata["attachmentUrl"] = "https://contoso.com/files/attachment.docx";
SendChatMessageResult sendChatMessageResult = await chatThreadClient.SendMessageAsync(sendChatMessageOptions);
string messageId = sendChatMessageResult.Id;
Menerima pesan obrolan dari utas obrolan
Anda dapat mengambil pesan obrolan dengan mengumpulkan metode GetMessages
pada klien utas obrolan pada interval tertentu.
AsyncPageable<ChatMessage> allMessages = chatThreadClient.GetMessagesAsync();
await foreach (ChatMessage message in allMessages)
{
Console.WriteLine($"{message.Id}:{message.Content.Message}");
}
GetMessages
mengambil parameter DateTimeOffset
opsional. Jika offset tersebut ditentukan, Anda akan menerima pesan yang diterima, diperbarui, atau dihapus setelahnya. Perhatikan bahwa pesan yang diterima sebelum waktu offset tetapi diedit atau dihapus setelahnya juga akan ditampilkan.
GetMessages
menampilkan versi terbaru pesan, termasuk pengeditan atau penghapusan yang terjadi pada pesan menggunakan UpdateMessage
dan DeleteMessage
. Untuk pesan yang dihapus, chatMessage.DeletedOn
akan menampilkan nilai tanggalwaktu yang menunjukkan kapan pesan tersebut dihapus. Untuk pesan yang diedit, chatMessage.EditedOn
akan menampilkan tanggalwaktu yang menunjukkan kapan pesan diedit. Waktu asli pembuatan pesan dapat diakses menggunakan chatMessage.CreatedOn
, dan dapat digunakan untuk memesan pesan.
GetMessages
menampilkan berbagai jenis pesan yang dapat diidentifikasi oleh chatMessage.Type
. Jenis-jenisnya adalah:
Text
: Pesan obrolan biasa yang dikirim oleh anggota utas.Html
: Pesan teks berformat. Perhatikan bahwa pengguna Communication Services saat ini tidak dapat mengirim pesan RichText. Jenis pesan ini didukung oleh pesan yang dikirim dari pengguna Teams ke pengguna Communication Services dalam skenario Interop Teams.TopicUpdated
: Pesan sistem yang menunjukkan bahwa topik telah diperbarui. (readonly)ParticipantAdded
: Pesan sistem yang menunjukkan bahwa satu atau beberapa peserta telah ditambahkan ke utas obrolan.(readonly)ParticipantRemoved
: Pesan sistem yang menunjukkan satu peserta dihapus dari utas obrolan.
Untuk detail selengkapnya, lihat Jenis Pesan.
Menambahkan pengguna sebagai peserta ke utas obrolan
Setelah utas dibuat, Anda kemudian dapat menambahkan dan menghapus pengguna darinya. Dengan menambahkan pengguna, Anda memberi mereka akses untuk dapat mengirim pesan ke utas dan menambahkan/menghapus peserta lain. Sebelum menghubungi AddParticipants
, pastikan Anda telah memperoleh token akses dan identitas baru untuk pengguna tersebut. Pengguna akan membutuhkan token akses tersebut untuk menginisialisasi klien obrolan mereka.
Gunakan AddParticipants
untuk menambahkan satu atau beberapa peserta ke utas obrolan. Berikut ini adalah atribut yang didukung untuk setiap peserta utas:
communicationUser
, wajib, adalah identitas peserta utas.displayName
, opsional, adalah nama tampilan untuk peserta utas.shareHistoryTime
, opsional, adalah waktu ketika riwayat obrolan dibagikan dengan peserta.
var josh = new CommunicationUserIdentifier(id: "<Access_ID_For_Josh>");
var gloria = new CommunicationUserIdentifier(id: "<Access_ID_For_Gloria>");
var amy = new CommunicationUserIdentifier(id: "<Access_ID_For_Amy>");
var participants = new[]
{
new ChatParticipant(josh) { DisplayName = "Josh" },
new ChatParticipant(gloria) { DisplayName = "Gloria" },
new ChatParticipant(amy) { DisplayName = "Amy" }
};
await chatThreadClient.AddParticipantsAsync(participants: participants);
Mendapatkan peserta utas
Gunakan GetParticipants
untuk mengambil peserta utas obrolan.
AsyncPageable<ChatParticipant> allParticipants = chatThreadClient.GetParticipantsAsync();
await foreach (ChatParticipant participant in allParticipants)
{
Console.WriteLine($"{((CommunicationUserIdentifier)participant.User).Id}:{participant.DisplayName}:{participant.ShareHistoryTime}");
}
Mengirim tanda terima dibaca
Gunakan SendReadReceipt
untuk memberi tahu peserta lain bahwa pesan telah dibaca oleh pengguna.
await chatThreadClient.SendReadReceiptAsync(messageId: messageId);
Menjalankan kode
Menjalankan aplikasi dari direktori aplikasi Anda dengan perintah dotnet run
.
dotnet run
Kode Sampel
Menemukan kode final untuk mulai cepat ini di GitHub.
Prasyarat
Sebelum memulai, pastikan untuk:
Buat akun Azure dengan langganan aktif. Untuk detailnya, lihat Membuat akun gratis.
Instal Xcode dan CocoaPods. Anda dapat menggunakan Xcode untuk membuat aplikasi iOS untuk pemula, dan CocoaPods untuk menginstal dependensi.
Membuat sumber daya Azure Communication Services. Untuk mengetahui detailnya, lihat Mulai cepat: Buat dan kelola sumber daya Azure Communication Services. Anda harus merekam titik akhir sumber daya dan string koneksi untuk mulai cepat ini.
Buat dua pengguna di Azure Communication Services, dan terbitkan Token Akses Pengguna. Pastikan untuk mengatur cakupan ke obrolan, dan catat string token serta string user_id. Dalam mulai cepat ini, Anda membuat utas dengan peserta pertama, lalu tambahkan peserta kedua ke utas. Anda juga dapat menggunakan Azure CLI dan menjalankan perintah di bawah ini dengan string koneksi Anda untuk membuat pengguna dan token akses.
az communication identity token issue --scope chat --connection-string "yourConnectionString"
Untuk detailnya, lihat Menggunakan Azure CLI untuk Membuat dan Mengelola Token Akses.
Menyiapkan
Buat aplikasi iOS baru
Buka Xcode dan pilih Buat proyek Xcode baru. Kemudian pilih iOS sebagai platform dan Aplikasi untuk templat.
Untuk nama proyek, masukkan ChatQuickstart. Kemudian pilih Storyboard sebagai antarmuka, Delegasi Aplikasi UIKit sebagai siklus hidup, dan Swift sebagai bahasa.
Pilih Berikutnya,dan pilih direktori tempat Anda ingin proyek dibuat.
Instal pustaka
Gunakan CocoaPods untuk menginstal dependensi Azure Communication Services yang diperlukan.
Dari baris perintah, masuk ke dalam akar direktori proyek ChatQuickstart
iOS. Buat Podfile dengan perintah berikut: pod init
.
Buka Podfile, dan tambahkan dependensi berikut ke ChatQuickstart
target:
pod 'AzureCommunicationChat', '~> 1.3.5'
Instal dependensi dengan perintah berikut: pod install
. Perhatikan bahwa hal ini juga membuat ruang kerja Xcode.
Setelah menjalankan pod install
, buka kembali proyek di Xcode dengan memilih .xcworkspace
yang baru saja dibuat.
Siapkan tempat penampung
Buka ruang kerja ChatQuickstart.xcworkspace
di Xcode, lalu buka ViewController.swift
.
Dalam mulai cepat, Anda menambahkan kode Anda ke viewController
, dan melihat output di konsol Xcode. Panduan mulai cepat tidak membahas pembuatan tatap muka pengguna di iOS.
Di bagian atas viewController.swift
, impor AzureCommunication
dan AzureCommunicatonChat
pustaka:
import AzureCommunicationCommon
import AzureCommunicationChat
Salin kode berikut ke viewDidLoad()
dalam metode ViewController
:
override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view.
let semaphore = DispatchSemaphore(value: 0)
DispatchQueue.global(qos: .background).async {
do {
// <CREATE A CHAT CLIENT>
// <CREATE A CHAT THREAD>
// <LIST ALL CHAT THREADS>
// <GET A CHAT THREAD CLIENT>
// <SEND A MESSAGE>
// <SEND A READ RECEIPT >
// <RECEIVE MESSAGES>
// <ADD A USER>
// <LIST USERS>
} catch {
print("Quickstart failed: \(error.localizedDescription)")
}
}
}
Untuk tujuan demonstrasi, kami akan menggunakan semaphore untuk menyinkronkan kode Anda. Dalam langkah-langkah berikut, Anda mengganti tempat penampung dengan kode sampel dengan menggunakan pustaka Obrolan Azure Communication Services.
Membuat klien obrolan
Untuk membuat klien obrolan, Anda akan menggunakan titik akhir Communication Services dan token akses yang dihasilkan sebagai bagian dari langkah-langkah prasyarat.
Pelajari selengkapnya tentang Token Akses Pengguna.
Mulai cepat ini tidak mencakup pembuatan tingkat layanan untuk mengelola token untuk aplikasi obrolan Anda, meskipun disarankan. Pelajari selengkapnya tentang Arsitektur Obrolan
Ganti komentar <CREATE A CHAT CLIENT>
dengan cuplikan kode berikut:
let endpoint = "<ACS_RESOURCE_ENDPOINT>"
let credential =
try CommunicationTokenCredential(
token: "<ACCESS_TOKEN>"
)
let options = AzureCommunicationChatClientOptions()
let chatClient = try ChatClient(
endpoint: endpoint,
credential: credential,
withOptions: options
)
Ganti <ACS_RESOURCE_ENDPOINT>
dengan titik akhir untuk sumber daya Azure Communication Services Anda. Ganti <ACCESS_TOKEN>
dengan token akses Azure Communication Services Anda yang valid.
Model objek
Kelas dan antarmuka berikut menangani beberapa fitur utama SDK Obrolan Azure Communication Services untuk iOS.
Nama | Deskripsi |
---|---|
ChatClient |
Kelas ini diperlukan karena berfungsi sebagai obrolan. Anda membuat instans dari informasi langganan Anda, dan menggunakannya untuk membuat, mendapatkan, menghapus utas, dan berlangganan acara obrolan. |
ChatThreadClient |
Kelas ini dibuat untuk fungsi Utas Obrolan. Anda mendapatkan instans melalui ChatClient , dan menggunakannya untuk mengirim, menerima, memperbarui, dan menghapus pesan. Anda juga dapat menggunakannya untuk menambahkan, menghapus, dan mendapatkan pengguna, serta mengirim pemberitahuan pengetikan dan tanda terima baca. |
Memulai utas obrolan
CreateChatThreadResult
adalah respons yang dikembalikan dari pembuatan utas obrolan.
Ini berisi properti chatThread
yang merupakan objek ChatThreadProperties
. Objek ini berisi threadId yang dapat digunakan untuk mendapatkan ChatThreadClient
untuk melakukan operasi di alur yang dibuat: menambahkan peserta, mengirim pesan, dll.
Ganti komentar <CREATE A CHAT THREAD>
dengan cuplikan kode berikut:
let request = CreateChatThreadRequest(
topic: "Quickstart",
participants: [
ChatParticipant(
id: CommunicationUserIdentifier("<USER_ID>"),
displayName: "Jack"
)
]
)
var threadId: String?
chatClient.create(thread: request) { result, _ in
switch result {
case let .success(result):
threadId = result.chatThread?.id
case .failure:
fatalError("Failed to create thread.")
}
semaphore.signal()
}
semaphore.wait()
Ganti <USER_ID>
dengan token akses Azure Communication Services Anda yang valid.
Anda menggunakan semaphore di sini untuk menunggu pengatur untuk menyelesaikan sebelum melanjutkan. Dalam langkah selanjutnya, Anda akan menggunakan threadId
dari respons yang dikembalikan ke pengatur penyelesaian.
Mencantumkan semua utas obrolan
Setelah membuat utas obrolan, kita dapat mencantumkan semua utas obrolan dengan memanggil listChatThreads
metode pada ChatClient
. Ganti komentar <LIST ALL CHAT THREADS>
dengan kode berikut:
chatClient.listThreads { result, _ in
switch result {
case let .success(threads):
guard let chatThreadItems = threads.pageItems else {
print("No threads returned.")
return
}
for chatThreadItem in chatThreadItems {
print("Thread id: \(chatThreadItem.id)")
}
case .failure:
print("Failed to list threads")
}
semaphore.signal()
}
semaphore.wait()
Mendapatkan klien utas obrolan
Metode createClient
menampilkan ChatThreadClient
untuk utas yang sudah ada. Ini dapat digunakan untuk melakukan operasi pada utas yang dibuat: menambahkan peserta, mengirim pesan, dll. threadId adalah ID unik dari utas obrolan yang ada.
Ganti komentar <GET A CHAT THREAD CLIENT>
dengan kode berikut:
let chatThreadClient = try chatClient.createClient(forThread: threadId!)
Mengirim pesan ke utas obrolan
Gunakan metode send
untuk mengirim pesan ke alur yang diidentifikasi oleh threadId.
SendChatMessageRequest
digunakan untuk menjelaskan permintaan pesan:
- Gunakan
content
untuk memasukkan konten pesan obrolan - Gunakan
senderDisplayName
untuk menentukan nama tampilan pengirim - Gunakan
type
untuk menentukan jenis pesan, seperti 'text' atau 'html' - Gunakan
metadata
secara opsional untuk menyertakan data tambahan yang ingin Anda kirim bersama pesan. Bidang ini menyediakan mekanisme bagi pengembang untuk memperluas fungsionalitas pesan obrolan dan menambahkan informasi kustom untuk kasus penggunaan Anda. Misalnya, saat berbagi tautan file di pesan, Anda mungkin ingin menambahkan 'hasAttachment:true' dalam metadata sehingga aplikasi penerima dapat mengurainya dan menampilkannya.
SendChatMessageResult
adalah respons yang ditampilkan dari mengirim pesan, berisi ID, yang merupakan ID unik pesan.
Ganti komentar <SEND A MESSAGE>
dengan cuplikan kode berikut:
let message = SendChatMessageRequest(
content: "Hello!",
senderDisplayName: "Jack",
type: .text,
metadata: [
"hasAttachment": "true",
"attachmentUrl": "https://contoso.com/files/attachment.docx"
]
)
var messageId: String?
chatThreadClient.send(message: message) { result, _ in
switch result {
case let .success(result):
print("Message sent, message id: \(result.id)")
messageId = result.id
case .failure:
print("Failed to send message")
}
semaphore.signal()
}
semaphore.wait()
Kirim tanda terima baca
Gunakan metode sendReadReceipt
untuk memposting peristiwa tanda terima baca ke utas obrolan, atas nama pengguna.
messageId
adalah ID unik dari pesan obrolan yang dibaca.
Ganti komentar <SEND A READ RECEIPT>
dengan kode berikut:
if let id = messageId {
chatThreadClient.sendReadReceipt(forMessage: id) { result, _ in
switch result {
case .success:
print("Read receipt sent")
case .failure:
print("Failed to send read receipt")
}
semaphore.signal()
}
semaphore.wait()
} else {
print("Cannot send read receipt without a message id")
}
Menerima pesan obrolan dari utas obrolan
Dengan sinyal real time, Anda dapat berlangganan untuk mendengarkan pesan masuk baru dan memperbarui pesan saat ini di memori. Azure Communication Services mendukung daftar acar yang dapat Anda ikuti untuk .
Ganti komentar <RECEIVE MESSAGES>
dengan kode berikut. Setelah mengaktifkan pemberitahuan, coba kirim pesan baru untuk melihat ChatMessageReceivedEvents.
chatClient.startRealTimeNotifications { result in
switch result {
case .success:
print("Real-time notifications started.")
case .failure:
print("Failed to start real-time notifications.")
}
semaphore.signal()
}
semaphore.wait()
chatClient.register(event: .chatMessageReceived, handler: { response in
switch response {
case let .chatMessageReceivedEvent(event):
print("Received a message: \(event.message)")
default:
return
}
})
Atau, Anda dapat mengambil pesan obrolan dengan polling metode listMessages
pada interval tertentu. Lihat cuplikan kode berikut untuk listMessages
chatThreadClient.listMessages { result, _ in
switch result {
case let .success(messagesResult):
guard let messages = messagesResult.pageItems else {
print("No messages returned.")
return
}
for message in messages {
print("Received message with id: \(message.id)")
}
case .failure:
print("Failed to receive messages")
}
semaphore.signal()
}
semaphore.wait()
Menambahkan pengguna sebagai peserta ke utas obrolan
Setelah utas dibuat, Anda kemudian dapat menambahkan dan menghapus pengguna darinya. Dengan menambahkan pengguna, Anda memberi mereka akses untuk dapat mengirim pesan ke utas dan menambahkan/menghapus peserta lain. Sebelum menghubungi add
, pastikan Anda telah memperoleh token akses dan identitas baru untuk pengguna tersebut. Pengguna akan membutuhkan token akses tersebut untuk menginisialisasi klien obrolan mereka.
Gunakan metode add
dari ChatThreadClient
untuk menambahkan satu atau beberapa peserta ke alur obrolan. Berikut ini adalah atribut yang didukung untuk setiap peserta utas:
id
, wajib, adalah identitas peserta utas.displayName
, opsional, adalah nama tampilan untuk peserta utas.shareHistoryTime
, opsional, adalah waktu ketika riwayat obrolan dibagikan dengan peserta.
Ganti komentar <ADD A USER>
dengan kode berikut:
let user = ChatParticipant(
id: CommunicationUserIdentifier("<USER_ID>"),
displayName: "Jane"
)
chatThreadClient.add(participants: [user]) { result, _ in
switch result {
case let .success(result):
if let errors = result.invalidParticipants, !errors.isEmpty {
print("Error adding participant")
} else {
print("Added participant")
}
case .failure:
print("Failed to add the participant")
}
semaphore.signal()
}
semaphore.wait()
Ganti <USER_ID>
dengan ID pengguna Azure Communication Services pengguna yang akan ditambahkan.
Mencantumkan Daftar pengguna di utas
Gunakan metode listParticipants
untuk mendapatkan semua peserta untuk alur obrolan tertentu.
Ganti komentar <LIST USERS>
dengan kode berikut:
chatThreadClient.listParticipants { result, _ in
switch result {
case let .success(participantsResult):
guard let participants = participantsResult.pageItems else {
print("No participants returned.")
return
}
for participant in participants {
let user = participant.id as! CommunicationUserIdentifier
print("User with id: \(user.identifier)")
}
case .failure:
print("Failed to list participants")
}
semaphore.signal()
}
semaphore.wait()
Pemberitahuan push
Pemberitahuan push memberi tahu klien tentang pesan masuk di utas obrolan dalam situasi di mana aplikasi seluler tidak berjalan di latar depan. Saat ini mengirim pemberitahuan push obrolan dengan Notification Hub didukung untuk IOS SDK di versi 1.3.0. Silakan lihat artikel Mengaktifkan Pemberitahuan Push di aplikasi obrolan Anda untuk detailnya.
Menjalankan kode
Pada Xcode tekan tombol Run untuk membangun dan menjalankan projek. Pada konsol Anda dapat melihat output dari kode dan pencatat output dari ChatClient.
Ingat: Atur Build Settings > Build Options > Enable Bitcode
ke No
. Saat ini AzureCommunicationChat SDK untuk iOS tidak mendukung pengaktifan bitcode, masalah GitHub berikut melacak ini.
Kode Sampel
Menemukan kode final untuk mulai cepat ini di GitHub.
Prasyarat
Akun Azure dengan langganan aktif, atau buat akun secara gratis.
Sumber daya Azure Communication Services aktif, atau buat sumber daya Communication Services.
Sumber daya Azure Logic Apps aktif, atau buat aplikasi logika kosong dengan pemicu yang ingin Anda gunakan. Saat ini, konektor Obrolan Communication Services hanya menyediakan tindakan, sehingga aplikasi logika Anda memerlukan pemicu, minimal.
Buat pengguna
Selesaikan langkah-langkah ini di Power Automate dengan alur Power Automate Anda terbuka dalam mode edit.
Untuk menambahkan langkah baru dalam alur kerja Anda dengan menggunakan konektor Identitas Communication Services:
Di perancang, di bawah langkah tempat Anda ingin menambahkan tindakan baru, pilih Langkah baru. Atau, untuk menambahkan tindakan baru di antara langkah-langkah, pindahkan penunjuk Anda ke panah di antara langkah-langkah tersebut, pilih tanda plus (+), lalu pilih Tambahkan tindakan.
Di kotak pencarian Pilih operasi , masukkan Identitas Communication Services. Dalam daftar tindakan, pilih Buat pengguna.
Masukkan string koneksi. Untuk mendapatkan URL string koneksi di portal Azure, buka sumber daya Azure Communication Services. Di menu sumber daya, pilih Kunci, lalu pilih string Koneksi ion. Pilih ikon salin untuk menyalin string koneksi.
Masukkan nama untuk koneksi.
Pilih Perlihatkan opsi tingkat lanjut, lalu pilih cakupan token. Tindakan ini menghasilkan token akses dan waktu kedaluwarsanya dengan cakupan yang ditentukan. Tindakan ini juga menghasilkan ID pengguna yang merupakan identitas pengguna Communication Services.
Di Item Cakupan Token, pilih obrolan.
Pilih Buat. ID pengguna dan token akses ditampilkan.
Membuat utas obrolan
Tambahkan tindakan baru.
Di kotak pencarian Pilih operasi , masukkan Obrolan Communication Services. Dalam daftar tindakan, pilih Buat utas obrolan.
Masukkan URL titik akhir Communication Services. Untuk mendapatkan URL titik akhir di portal Azure, buka sumber daya Azure Communication Services. Di menu sumber daya, pilih Kunci, lalu pilih Titik Akhir.
Masukkan nama untuk koneksi.
Pilih token akses yang dihasilkan di bagian sebelumnya, lalu tambahkan deskripsi topik utas obrolan. Tambahkan pengguna yang dibuat dan masukkan nama untuk peserta.
Mengirim pesan
Tambahkan tindakan baru.
Di kotak pencarian Pilih operasi , masukkan Obrolan Communication Services. Dalam daftar tindakan, pilih Kirim pesan ke utas obrolan.
Masukkan token akses, ID utas, konten, dan nama.
Mencantumkan pesan utas obrolan
Untuk memverifikasi bahwa Anda mengirim pesan dengan benar:
Tambahkan tindakan baru.
Di kotak pencarian Pilih operasi , masukkan Obrolan Communication Services. Dalam daftar tindakan, pilih Daftar pesan utas obrolan.
Masukkan token akses dan ID utas.
Menguji aplikasi logika Anda
Untuk memulai alur kerja Anda secara manual, pilih Jalankan di toolbar perancang. Alur kerja membuat pengguna, mengeluarkan token akses untuk pengguna tersebut, lalu menghapus token dan menghapus pengguna. Untuk informasi selengkapnya, tinjau Cara menjalankan alur kerja Anda.
Sekarang, pilih Daftar pesan utas obrolan. Dalam output tindakan, periksa pesan yang dikirim.
Membersihkan sumber daya alur kerja
Untuk membersihkan alur kerja aplikasi logika dan sumber daya terkait, tinjau cara menghapus sumber daya Logic Apps.
Membersihkan sumber daya
Jika ingin membersihkan dan menghapus langganan Azure Communication Services, Anda bisa menghapus sumber daya atau grup sumber daya. Menghapus grup sumber daya juga menghapus sumber daya apa pun yang terkait dengannya. Pelajari selengkapnya tentang membersihkan sumber daya.
Langkah berikutnya
Dalam panduan mulai cepat ini, Anda telah mempelajari cara:
- Membuat klien obrolan
- Membuat utas dengan dua pengguna
- Mengirim pesan ke utas
- Menerima pesan dari utas
- Menghapus Pengguna dari utas
Anda mungkin juga ingin:
- Mulai menggunakan Pustaka UI
- Mempelajari tentang konsep obrolan
- Membiasakan diri Anda dengan SDK Obrolan
- Menggunakan Chat SDK di aplikasi React Native Anda.