Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
Tambahkan obrolan real-time ke aplikasi Anda dengan menggunakan SDK Obrolan Communication Services. Artikel ini menjelaskan cara menggunakan SDK Obrolan untuk membuat utas obrolan yang memungkinkan pengguna melakukan percakapan satu sama lain. Untuk mempelajari selengkapnya tentang konsep Obrolan, lihat dokumentasi konseptual obrolan.
Prasyarat
Akun Azure dengan langganan aktif. Buat akun secara gratis.
Sumber daya Communication Services aktif dan string koneksi. Buat sumber daya 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 tersebut. Anda juga dapat menggunakan Azure CLI dan menjalankan perintah berikut 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.
Pengaturan
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 perlu masuk ke Azure CLI. Anda dapat masuk dengan 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 memasukkan titik akhir. Untuk mengonfigurasi variabel lingkungan, buka jendela konsol dan pilih sistem operasi Anda dari tab berikut. Ganti <yourEndpoint> dengan titik akhir Anda yang sebenarnya.
Buka jendela konsol dan masukkan perintah berikut:
setx AZURE_COMMUNICATION_ENDPOINT "<yourEndpoint>"
Setelah menambahkan variabel lingkungan, Anda mungkin perlu memulai 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 berikut. Ganti <yourAccessToken> dengan token akses Anda yang sebenarnya.
Buka jendela konsol dan masukkan perintah berikut:
setx AZURE_COMMUNICATION_ACCESS_TOKEN "<yourAccessToken>"
Setelah menambahkan variabel lingkungan, Anda mungkin perlu memulai 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
Mulailah utas obrolan
Gunakan perintah thread create untuk membuat utas obrolan.
az communication chat thread create --topic "<chatTopic>" --endpoint "<endpoint>" --access-token "<token>"
Jika Anda menyimpan titik akhir dan token akses dalam variabel lingkungan seperti yang dinyatakan sebelumnya, 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-topicperintah . - Ganti
<endpoint>dengan endpoint Azure Communication Services Anda. - Ganti
<token>dengan token akses Anda yang diperoleh sebelumnya dengan menjalankan perintahidentity token issue.
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 endpoint Azure Communication Services Anda. - Ganti
<token>dengan token akses Anda yang diperoleh sebelumnya dengan menjalankan perintahidentity token issue.
Daftar semua utas obrolan
Perintah thread list mengembalikan daftar utas obrolan dari seorang pengguna.
az communication chat thread list --start-time "<startTime>" --endpoint "<endpoint>" --access-token "<token>"
- Opsional: Gunakan
<startTime>untuk menentukan titik waktu paling awal untuk mendapatkan pesan obrolan. - Ganti
<endpoint>dengan endpoint Azure Communication Services Anda. - Ganti
<token>dengan token akses Anda yang diperoleh sebelumnya dengan menjalankan perintahidentity token issue.
Kirim 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 adalahtextdanhtml. Jika Anda tidak menentukan nilai, defaultnya adalahtext. - Gunakan
<displayName>secara opsional untuk menentukan nama tampilan pengirim. - Ganti
<endpoint>dengan endpoint Azure Communication Services Anda. - Ganti
<token>dengan token akses Anda yang diperoleh sebelumnya dengan menjalankan perintahidentity token issue.
Menampilkan pesan dalam 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 endpoint Azure Communication Services Anda. - Ganti
<token>dengan token akses Anda yang diperoleh sebelumnya dengan menjalankan perintahidentity token issue.
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 endpoint Azure Communication Services Anda. - Ganti
<token>dengan token akses Anda yang diperoleh sebelumnya dengan menjalankan perintahidentity token issue.
Kirimkan konfirmasi bahwa pesan telah dibaca
Anda menggunakan perintah message receipt send untuk memposting event tanda terima baca dalam 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 endpoint Azure Communication Services Anda. - Ganti
<token>dengan token akses Anda yang diperoleh sebelumnya dengan menjalankan perintahidentity token issue.
Tambahkan pengguna sebagai peserta ke thread 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 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 endpoint Azure Communication Services Anda. - Ganti
<token>dengan token akses Anda yang diperoleh sebelumnya dengan menjalankan perintahidentity token issue.
Menampilkan peserta dalam utas obrolan
Serupa dengan menambahkan peserta, Anda juga dapat mencantumkan peserta dari utas.
Gunakan perintah participant list 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 endpoint Azure Communication Services Anda. - Ganti
<token>dengan token akses Anda yang diperoleh sebelumnya dengan menjalankan perintahidentity token issue.
Mengeluarkan 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 percakapan. - Ganti
<endpoint>dengan endpoint Azure Communication Services Anda. - Ganti
<token>dengan token akses Anda yang diperoleh sebelumnya dengan menjalankan perintahidentity token issue.
Prasyarat
Buat akun Azure dengan langganan aktif. Untuk detailnya, lihat Membuat akun gratis.
Instal Node.js versi LTS Aktif dan LTS Pemeliharaan.
Buat sumber daya Azure Communication Services. Untuk detailnya, lihat Membuat sumber daya Azure Communication Services. Anda perlu merekam titik akhir sumber daya dan string koneksi untuk artikel 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 tersebut. Demo secara keseluruhan membuat utas dengan dua peserta awal dan kemudian menambahkan peserta ketiga ke utas tersebut. Anda juga dapat menggunakan Azure CLI dan menjalankan perintah berikut 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.
Pengaturan
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-paket tersebut
npm install Gunakan perintah untuk menginstal SDK Communication Services berikut untuk JavaScript.
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
Artikel ini menggunakan webpack untuk memaketkan aset aplikasi. Jalankan perintah berikut untuk menginstalnya dan mencantumkannya sebagai dependensi pengembangan di package.json Anda:
npm install webpack webpack-cli webpack-dev-server --save-dev
Buat webpack.config.js di direktori akar proyek Anda.
module.exports = {
entry: "./client.js",
output: {
filename: "bundle.js"
},
devtool: "inline-source-map",
mode: "development"
}
Buat file index.html di direktori akar proyek Anda. Gunakan 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="./bundle.js"></script>
</body>
</html>
Buat file di direktori akar proyek Anda yang disebut client.js untuk berisi logika aplikasi untuk artikel ini.
Membuat aplikasi obrolan
Untuk membuat klien obrolan di aplikasi web Anda, gunakan titik akhir Communications Service dan token akses yang dihasilkan sebagai bagian dari langkah-langkah prasyarat.
Token akses pengguna memungkinkan Anda membangun aplikasi klien yang langsung mengautentikasi ke Azure Communication Services. Artikel ini tidak mencakup pembuatan tingkat layanan untuk mengelola token untuk aplikasi obrolan Anda. Untuk informasi selengkapnya tentang arsitektur obrolan, lihat konsep obrolan. Untuk informasi selengkapnya tentang token akses, lihat token akses pengguna.
Di dalam client.js gunakan titik akhir dan token akses dalam kode berikut 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. Untuk detailnya selengkapnya, lihat Membuat sumber daya Azure Communication Services.
- Ganti userAccessToken dengan token yang Anda terbitkan.
Menjalankan kode
Perbarui bagian scripts di package.json untuk menyertakan "mulai"
"start": "webpack serve --config ./webpack.config.js"
Jalankan perintah berikut untuk menjalankan aplikasi Anda:
npm install
npm run start
Buka browser Anda dan navigasi ke http://localhost:8080/. Di konsol alat pengembang dalam browser, Anda akan melihat:
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 untuk fungsionalitas obrolan. Anda menginstansiasi dengan informasi langganan Anda, dan menggunakannya untuk membuat, mendapatkan, menghapus utas, dan berlangganan acara obrolan. |
| ChatThreadClient | Kelas ini diperlukan untuk fungsionalitas Thread Percakapan. Anda mendapatkan instans melalui ChatClient dan menggunakannya untuk mengirim/menerima/memperbarui/menghapus pesan, menambah/menghapus/mendapatkan pengguna, mengirim pemberitahuan pengetikan dan tanda terima baca. |
Mulailah utas obrolan
Gunakan metode createThread untuk membuat percakapan obrolan.
createThreadRequest digunakan untuk mendeskripsikan permintaan utas:
- Gunakan
topicuntuk memberikan topik pada obrolan ini. Topik dapat diperbarui setelah utas obrolan dibuat menggunakan fungsiUpdateThread. - Gunakan
participantsuntuk mencantumkan peserta untuk ditambahkan ke utas obrolan.
Setelah diselesaikan, metode createChatThread menampilkan CreateChatThreadResult. Model ini berisi properti chatThread yang dapat Anda gunakan untuk mengakses id dari utas yang baru dibuat. Anda kemudian dapat menggunakan id untuk mendapatkan sebuah 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 pesan berikut di konsol:
Thread created: <thread_id>
Dapatkan klien percakapan obrolan
Metode getChatThreadClient mengembalikan 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>
Daftar semua utas obrolan
Metode listChatThreads ini menampilkan PagedAsyncIterableIterator dari jenis ChatThreadItem. Fungsi ini dapat digunakan untuk menampilkan semua utas obrolan.
Iterator [ChatThreadItem] adalah respons yang dikembalikan dari memperlihatkan daftar utas
const threads = chatClient.listChatThreads();
for await (const thread of threads) {
// your code here
}
Kirim pesan ke utas obrolan
Gunakan metode sendMessage untuk mengirim pesan ke utas yang diidentifikasi oleh threadId.
sendMessageRequest digunakan untuk menjelaskan permintaan pesan:
- Gunakan
contentuntuk menyediakan konten pesan obrolan;
sendMessageOptions digunakan untuk menjelaskan param opsional operasi:
- Gunakan
senderDisplayNameuntuk menentukan nama tampilan pengirim; - Gunakan
typeuntuk menentukan jenis pesan, seperti 'teks' atau 'html'; - Gunakan
metadatasecara 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 dikembalikan dari pengiriman pesan. Ini berisi 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 peristiwa yang dapat Anda ikuti.
// 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.
Segarkan tab peramban Anda, Anda akan melihat pesan di konsol Notification chatMessageReceived;
Atau, Anda dapat mengambil pesan obrolan dengan memanggil metode listMessages secara berkala 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.
Segarkan tab Anda, di konsol Anda akan menemukan daftar pesan yang dikirim dalam utas obrolan ini.
listMessages mengembalikan berbagai jenis pesan yang dapat Anda identifikasi oleh chatMessage.type.
Untuk informasi selengkapnya, lihat Jenis Pesan.
Tambahkan pengguna sebagai peserta ke thread obrolan
Setelah utas obrolan dibuat, Anda kemudian dapat menambahkan dan menghapus pengguna dari 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 memperoleh token akses dan identitas baru untuk pengguna tersebut addParticipants . Pengguna memerlukan token akses tersebut untuk menginisialisasi klien obrolan mereka.
addParticipantsRequest menjelaskan objek permintaan di mana participants mencantumkan peserta yang akan ditambahkan ke utas obrolan;
-
id, yang diperlukan, adalah pengidentifikasi komunikasi yang akan ditambahkan ke dalam 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
Menampilkan pengguna dalam percakapan 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 dalam utas.
Menghapus pengguna dari percakapan obrolan
Mirip dengan menambahkan peserta, Anda dapat menghapus peserta dari utas obrolan. Untuk menghapus, Anda perlu melacak ID peserta yang Anda tambahkan.
Gunakan metode removeParticipant di 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 notifikasi status koneksi secara 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
});
Contoh kode
Temukan kode akhir untuk artikel ini di sampel GitHub Tambahkan Obrolan ke aplikasi Anda.
Prasyarat
Buat akun Azure dengan langganan aktif. Untuk detailnya, lihat Membuat akun gratis.
Instal Python 3.7+.
Buat sumber daya Azure Communication Services. Untuk mengetahui detailnya, lihat Mulai cepat: Buat dan kelola sumber daya Azure Communication Services. Anda perlu merekam titik akhir sumber daya dan string koneksi untuk artikel ini.
Token Akses Pengguna. Pastikan untuk mengatur cakupan ke obrolan, dan catat string token serta string user_id tersebut. Anda juga dapat menggunakan Azure CLI dan menjalankan perintah berikut 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.
Persiapan
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 berikut, tambahkan semua kode sumber untuk artikel ini ke 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 untuk fungsi obrolan. Anda menginstansiasi dengan informasi berlangganan Anda, dan menggunakannya untuk membuat, memperoleh, 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 mengambil pengguna, serta mengirim pemberitahuan pengetikan dan tanda terima baca. |
Membuat aplikasi obrolan
Untuk membuat klien obrolan, gunakan titik akhir 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>"))
Artikel ini tidak mencakup pembuatan tingkat layanan untuk mengelola token untuk aplikasi obrolan Anda, tetapi disarankan. Untuk informasi selengkapnya, lihat bagian "Arsitektur Obrolan" dari Konsep Obrolan > Obrolan.
Mulailah utas obrolan
Gunakan metode create_chat_thread untuk membuat percakapan obrolan.
- Gunakan
topicuntuk memberi topik pada utas. Anda dapat memperbarui topik setelah utas obrolan dibuat dengan menggunakan fungsiupdate_thread. - Gunakan
thread_participantsuntuk mencantumkanChatParticipantagar ditambahkan ke utas obrolan.ChatParticipantmenggunakan tipeCommunicationUserIdentifiersebagaiuser.
CreateChatThreadResult adalah hasil yang dikembalikan dari pembuatan utas. Anda dapat menggunakannya untuk mengambil id dari utas obrolan yang baru 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)
Dapatkan klien percakapan obrolan
Metode get_chat_thread_client mengembalikan klien utas untuk sebuah utas yang sudah ada. Anda dapat menggunakannya untuk melakukan operasi pada utas yang dibuat. Misalnya, Anda dapat menambahkan peserta dan mengirim pesan.
thread_id adalah ID unik untuk 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)
Daftar semua utas obrolan
Metode list_chat_threads mengembalikan iterator jenis ChatThreadItem.
- Gunakan
start_timeuntuk menentukan titik paling awal waktu untuk mendapatkan utas obrolan. - Gunakan
results_per_pageuntuk menentukan jumlah maksimum utas obrolan yang dikembalikan per halaman.
Iterator dari [ChatThreadItem] adalah respons yang dikembalikan dari daftar 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)
Kirim pesan ke utas obrolan
Gunakan metode send_message untuk mengirim pesan ke utas obrolan yang Anda buat, yang diidentifikasi dengan thread_id.
- Gunakan
contentuntuk menyediakan konten pesan obrolan. - Gunakan
chat_message_typeuntuk menentukan jenis konten pesan. Nilai yang mungkin adalahtextdanhtml. Jika Anda tidak menentukan nilai, defaultnya adalahtext. - Gunakan
sender_display_nameuntuk menentukan nama tampilan pengirim. - Gunakan
metadatasecara 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 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 dari 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_pageuntuk menentukan jumlah maksimum pesan yang akan dikembalikan per halaman. - Gunakan
start_timeuntuk menentukan titik paling awal waktu untuk mendapatkan pesan.
Iterator dari [ChatMessage] adalah respons yang dikembalikan dari daftar 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 berbagai jenis pesan, yang Anda identifikasi dari ChatMessage.type.
Untuk informasi selengkapnya, lihat Jenis pesan.
Kirimkan konfirmasi bahwa pesan telah dibaca
Anda menggunakan metode send_read_receipt untuk memposting peristiwa tanda terima baca ke utas, atas nama seorang pengguna.
- Gunakan
message_iduntuk 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)
Tambahkan pengguna sebagai peserta ke thread 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 , pastikan Anda memperoleh token akses dan identitas baru untuk pengguna tersebut add_participants . Pengguna memerlukan token akses tersebut untuk menginisialisasi klien obrolan.
Anda dapat menambahkan satu atau beberapa pengguna ke utas obrolan dengan menggunakan add_participants metode , jika token akses dan identitas baru tersedia untuk semua pengguna.
list(tuple(ChatParticipant, CommunicationError)) dikembalikan. Setelah peserta berhasil ditambahkan, diharapkan muncul daftar kosong. Jika Anda mengalami kesalahan saat menambahkan peserta, daftar diisi dengan peserta yang gagal dan kesalahan yang ditemui.
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)
Menampilkan peserta dalam utas obrolan
Serupa dengan menambahkan peserta, Anda juga dapat mencantumkan peserta dari utas.
Gunakan list_participants untuk mengambil peserta diskusi. Kedua perintah berikut bersifat opsional:
- Gunakan
results_per_pageuntuk menentukan jumlah maksimum peserta yang akan dikembalikan per halaman. - Gunakan
skipuntuk melompati peserta hingga posisi tertentu dalam respons.
Iterator dari [ChatParticipant] adalah respons yang dikembalikan dari daftar 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
Contoh kode
Temukan kode akhir untuk artikel ini di sampel GitHub Tambahkan Obrolan ke aplikasi Anda.
Prasyarat
Akun Azure dengan langganan aktif. Buat akun secara gratis.
Java Development Kit (JDK) versi 8 atau lebih tinggi.
Buat sumber daya Azure Communication Services. Untuk detailnya, lihat Membuat sumber daya Azure Communication Services. Anda perlu merekam titik akhir sumber daya dan string koneksi untuk artikel ini.
Token Akses Pengguna. Pastikan untuk mengatur cakupan ke obrolan, dan catat string token serta string user_id tersebut. Anda juga dapat menggunakan Azure CLI dan menjalankan perintah berikut 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.
Pengaturan
Membuat aplikasi Java baru
Buka terminal atau jendela perintah Anda dan arahkan ke direktori tempat Anda ingin membuat aplikasi Java. Jalankan perintah berikut untuk menghasilkan proyek Java dari maven-archetype-quickstart templat.
mvn archetype:generate -DgroupId=com.communication.quickstart -DartifactId=communication-quickstart -DarchetypeArtifactId=maven-archetype-quickstart -DarchetypeVersion=1.4 -DinteractiveMode=false
Tujuan generate adalah membuat direktori dengan nama yang sama dengan artifactId. Di bawah direktori ini, src/main/java directory berisi kode sumber proyek, src/test/java direktori berisi sumber pengujian, dan pom.xml file 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>
Tambahkan rujukan 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 untuk fungsionalitas obrolan. Anda menginstansiasi dengan informasi berlangganan Anda, dan menggunakannya untuk membuat, memperoleh, dan menghapus utas. |
| ChatAsyncClient | Kelas ini diperlukan untuk fungsionalitas Obrolan asinkron. Anda menginstansiasi dengan informasi berlangganan Anda, dan menggunakannya untuk membuat, memperoleh, dan menghapus utas. |
| ChatThreadClient | Kelas ini diperlukan untuk fungsionalitas Thread Percakapan. 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 Chat Thread asinkron. Anda mendapatkan instans melalui ChatAsyncClient dan menggunakannya untuk mengirim, menerima, memperbarui, atau menghapus pesan; menambah, menghapus, atau mendapatkan pengguna; serta mengirim pemberitahuan pengetikan dan tanda terima baca. |
Membuat aplikasi obrolan
Untuk membuat klien obrolan, gunakan endpoint layanan komunikasi dan token akses yang dihasilkan sebagai bagian dari 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();
}
}
Mulailah utas obrolan
Gunakan metode createChatThread untuk membuat percakapan obrolan.
createChatThreadOptions digunakan untuk mendeskripsikan permintaan utas.
- Gunakan parameter
topickonstruktor untuk memberikan topik pada obrolan ini; Topik dapat diperbarui setelah utas obrolan dibuat menggunakan fungsiUpdateThread. - Gunakan
participantsuntuk mencantumkan peserta utas yang akan ditambahkan ke dalamnya.ChatParticipantmengambil data pengguna yang Anda buat di Token Akses Pengguna.
CreateChatThreadResult adalah respons yang dihasilkan dari pembuatan utas obrolan.
Ini berisi metode getChatThread(), yang mengembalikan objek ChatThread yang dapat digunakan untuk mendapatkan klien utas yang memungkinkan Anda mendapatkan ChatThreadClient untuk melakukan operasi pada utas yang dibuat: menambahkan peserta, mengirim pesan, dll. Objek ChatThread juga berisi metode getId(), 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 percakapan
Gunakan metode listChatThreads untuk mendapatkan daftar utas obrolan yang sudah ada.
PagedIterable<ChatThreadItem> chatThreads = chatClient.listChatThreads();
chatThreads.forEach(chatThread -> {
System.out.printf("ChatThread id is %s.\n", chatThread.getId());
});
Dapatkan klien percakapan obrolan
Metode getChatThreadClient mengembalikan klien utas untuk sebuah 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);
Kirim pesan ke utas obrolan
Gunakan metode sendMessage untuk mengirim pesan ke utas yang Anda buat, yang diidentifikasi oleh chatThreadId.
sendChatMessageOptions digunakan untuk mendeskripsikan permintaan pesan obrolan.
- Gunakan
contentuntuk menyediakan konten pesan obrolan. - Gunakan
typeuntuk menentukan jenis konten pesan obrolan,TEXTatauHTML. - Gunakan
senderDisplayNameuntuk menentukan nama tampilan pengirim. - Gunakan
metadatasecara 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 menambahkanhasAttachment:truemetadata 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 melakukan polling pada metode listMessages pada klien thread 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.
Kirimkan konfirmasi bahwa pesan telah 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 dalam utas obrolan
Setelah utas obrolan dibuat, Anda kemudian dapat menambahkan dan menghapus pengguna dari utas tersebut. Dengan menambahkan pengguna, Anda memberi mereka akses untuk mengirim pesan ke utas obrolan, dan menambahkan/menghapus peserta lain. Anda perlu memulai dengan mendapatkan token akses dan identitas baru untuk pengguna tersebut. Sebelum memanggil addParticipants metode, pastikan Anda memperoleh token akses dan identitas baru untuk pengguna tersebut. Pengguna memerlukan token akses tersebut untuk menginisialisasi klien obrolan mereka.
Gunakan metode addParticipants untuk menambahkan peserta ke utas.
-
communicationIdentifier, diperlukan, adalah CommunicationIdentifier yang Anda buat oleh CommunicationIdentityClient di 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
Navigasi ke direktori yang berisi pom.xml file dan kompilasi proyek dengan menggunakan perintah berikut mvn .
mvn compile
Kemudian, buat paketnya.
mvn package
Jalankan perintah mvn berikut untuk menjalankan aplikasi.
mvn exec:java -Dexec.mainClass="com.communication.quickstart.App" -Dexec.cleanupDaemonThreads=false
Contoh kode
Temukan kode akhir untuk artikel ini di sampel GitHub Tambahkan Obrolan ke aplikasi Anda.
Prasyarat
Buat akun Azure dengan langganan aktif. Untuk detailnya, lihat Membuat akun gratis.
Instal Android Studio, kami menggunakan Android Studio untuk membuat aplikasi Android dan menginstal dependensi.
Buat sumber daya Azure Communication Services. Untuk detailnya, lihat Membuat sumber daya Azure Communication Services. Anda perlu merekam titik akhir sumber daya dan string koneksi untuk artikel 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. Dalam artikel berikut, kami membuat utas dengan peserta awal dan lalu menambahkan peserta kedua ke utas. Anda juga dapat menggunakan Azure CLI dan menjalankan perintah berikut 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.
Pengaturan
Buat aplikasi android baru
- Buka Android Studio dan pilih
Create a new project. - Pada windows selanjutnya, pilih
Empty Views Activitysebagai templat proyek. - Ketika memilih opsi, masukan
ChatQuickstartsebagai nama proyek. - Sampel ini menggunakan Java sebagai bahasa
- Klik selanjutnya dan pilih direktori di mana Anda ingin proyek dibuat.
Instal pustaka
Kami menggunakan Gradle untuk menginstal dependensi Communication Services yang diperlukan. Dari baris perintah, navigasikan kedalam direktori akar dari proyek ChatQuickstart. Buka file aplikasi build.gradle dan tambahkan dependensi dibawah ini pada ChatQuickstart target:
implementation libs.azure.communication.common
implementation libs.azure.communication.chat
implementation libs.slf4j.log4j12
Untuk nomor versi terbaru, lihat https://search.maven.org/artifact/com.azure.android/azure-communication-common dan https://search.maven.org/artifact/com.azure.android/azure-communication-chat.
Mengecualikan file meta dalam opsi pengemasan pada build.gradle di root
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 ke dalam proyek Anda menggunakan sistem build Maven, tambahkan ke dalam bagian dependencies dari file aplikasi Anda pom.xml, dengan menentukan ID artefak 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
Untuk detailnya, lihat Integrasi Azure Function. Sebaiknya integrasikan dengan Azure Function untuk menghindari parameter aplikasi hard-coding.
Menyiapkan 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 placeholder
Buka dan edit file MainActivity.java. Dalam artikel ini, kami menambahkan kode kami ke MainActivity, dan melihat output di konsol. Artikel 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) {
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 ke MainActivity.java jika salah satu dari kedua kondisi berikut terpenuhi: 1. Fitur pemberitahuan push TIDAK diaktifkan. 2. Versi pustaka Azure Communication Chat untuk Android adalah < 2.0.0. Jika tidak, lihat langkah 11 di pemberitahuan push Android. 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. Untuk informasi selengkapnya, lihat Integrasi Azure Function. Kami menggunakan respons dari memanggil Azure Function untuk menginisialisasi daftar parameter:
-
ACS_ENDPOINT: titik akhir sumber daya Layanan Komunikasi Anda. -
FIRST_USER_IDdanSECOND_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 aplikasi 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 untuk fungsionalitas obrolan. Anda menginstansiasi dengan informasi langganan Anda, dan menggunakannya untuk membuat, mendapatkan, menghapus utas, dan berlangganan acara obrolan. |
| ChatThreadClient/ChatThreadAsyncClient | Kelas ini diperlukan untuk fungsionalitas Thread Percakapan. Anda mendapatkan instans melalui ChatClient dan menggunakannya untuk mengirim/menerima/memperbarui/menghapus pesan, menambah/menghapus/mendapatkan pengguna, mengirim pemberitahuan pengetikan dan tanda terima baca. |
Mulailah utas obrolan
Gunakan ChatAsyncClient kami 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();
Dapatkan klien percakapan obrolan
Sekarang setelah kita membuat utas Obrolan, kita perlu mendapatkan ChatThreadAsyncClient untuk melakukan operasi 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();
Kirim pesan ke utas obrolan
Kirim pesan ke utas obrolan 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 penanda waktu nyata, Anda dapat berlangganan pesan masuk baru dan memperbarui pesan yang ada di dalam memori. Azure Communication Services mendukung daftar peristiwa yang dapat Anda ikuti.
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 Anda menggunakan Android Chat dan Calling SDK bersama-sama dalam aplikasi yang sama, fitur pemberitahuan secara langsung SDK Obrolan tidak berfungsi. Anda mungkin menghadapi masalah penyelesaian dependensi.
Anda dapat menonaktifkan fitur pemberitahuan real-time dengan menambahkan informasi dependensi berikut dalam file aplikasi build.gradle dan sebaliknya melakukan polling 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 dengan pembaruan ini, jika aplikasi mencoba menghubungi API pemberitahuan menggunakan chatAsyncClient.startRealtimeNotifications() atau chatAsyncClient.addEventHandler(), itu menghasilkan kesalahan runtime.
Pemberitahuan push
Untuk informasi selengkapnya, lihat Pemberitahuan push Android.
Tambahkan pengguna sebagai peserta ke thread 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 percakapan obrolan
Hapus pengguna nomor dua dari utas.
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 mengirim tanda terima baca untuk pesan yang dikirim sebelumnya.
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.
Contoh kode
Temukan kode akhir untuk artikel ini di sampel GitHub Tambahkan Obrolan ke aplikasi Anda.
Prasyarat
Buat akun Azure dengan langganan aktif. Untuk detailnya, lihat Membuat akun gratis.
Pasang Visual Studio
Buat sumber daya Azure Communication Services. Untuk detailnya, lihat Membuat sumber daya Azure Communication Services. Anda perlu merekam titik akhir sumber daya dan string koneksi untuk artikel ini.
Token Akses Pengguna. Pastikan untuk mengatur cakupan ke obrolan, dan catat string token serta string user_id tersebut. Anda juga dapat menggunakan Azure CLI dan menjalankan perintah berikut 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.
Pengaturan
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
Menginstal 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 untuk fungsionalitas obrolan. Anda menginstansiasi dengan informasi berlangganan Anda, dan menggunakannya untuk membuat, memperoleh, dan menghapus utas. |
| ChatThreadClient | Kelas ini diperlukan untuk fungsionalitas Thread Percakapan. 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 aplikasi obrolan
Untuk membuat klien obrolan, gunakan titik akhir Communication Services Anda 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.
Artikel ini tidak mencakup pembuatan tingkat layanan untuk mengelola token untuk aplikasi obrolan Anda, meskipun kami merekomendasikannya. Untuk informasi selengkapnya, lihat Arsitektur Obrolan.
Salin cuplikan kode berikut dan tempelkan ke Program.cs file sumber.
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);
}
}
}
Mulailah utas obrolan
Gunakan metode createChatThread pada chatClient untuk membuat utas obrolan
- Gunakan
topicuntuk memberikan topik pada obrolan ini. Anda dapat memperbarui topik setelah membuat utas obrolan menggunakanUpdateTopicfungsi . - Gunakan properti
participantsuntuk meneruskan daftar objekChatParticipantyang akan ditambahkan ke utas obrolan. ObjekChatParticipantdiinisialisasi dengan objekCommunicationIdentifier.CommunicationIdentifierbisa berjenisCommunicationUserIdentifier,MicrosoftTeamsUserIdentifier, atauPhoneNumberIdentifier. Misalnya, untuk mendapatkanCommunicationIdentifierobjek, Anda perlu 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, dan sebagainya, sebuah instans klien chatThreadClient perlu diinstansiasi 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;
Dapatkan klien percakapan obrolan
Metode GetChatThreadClient mengembalikan klien utas untuk sebuah utas yang sudah ada. Anda dapat menggunakannya untuk melakukan operasi pada utas yang dibuat: menambahkan anggota, mengirim pesan, dan sebagainya.
threadId adalah ID unik untuk utas obrolan yang ada.
string threadId = "<THREAD_ID>";
ChatThreadClient chatThreadClient = chatClient.GetChatThreadClient(threadId: threadId);
Daftar semua utas obrolan
Gunakan GetChatThreads untuk mengambil semua utas obrolan di mana pengguna terlibat.
AsyncPageable<ChatThreadItem> chatThreadItems = chatClient.GetChatThreadsAsync();
await foreach (ChatThreadItem chatThreadItem in chatThreadItems)
{
Console.WriteLine($"{ chatThreadItem.Id}");
}
Kirim pesan ke utas obrolan
Gunakan SendMessage untuk mengirim pesan ke utas.
- Gunakan
contentuntuk menyediakan konten untuk pesan. Dibutuhkan. - Gunakan
typeuntuk jenis konten pesan seperti 'Teks' atau 'Html'. Jika tidak ditentukan, 'Teks' akan disetel. - Gunakan
senderDisplayNameuntuk menentukan nama tampilan pengirim. Jika tidak ditentukan, string kosong diberikan. - Opsional: Gunakan
metadatauntuk 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 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 melakukan polling pada metode GetMessages pada klien thread 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 menerima pesan yang diterima, diperbarui, atau dihapus setelahnya. Pesan yang diterima sebelum waktu offset tetapi diedit atau dihapus setelahnya juga dikembalikan.
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 mengembalikan berbagai jenis pesan. Anda dapat mengidentifikasi jenis dari chatMessage.Type. Jenisnya adalah:
Text: Pesan obrolan biasa yang dikirim oleh anggota thread.Html: Pesan teks berformat. Pengguna Communication Services saat ini tidak dapat mengirim pesan RichText. Jenis pesan ini didukung untuk pesan yang dikirim dari pengguna Teams ke pengguna Communication Services dalam skenario Teams Interop.TopicUpdated: Pesan sistem yang menunjukkan topik diperbarui. (readonly)ParticipantAdded: Pesan sistem yang menunjukkan satu atau beberapa peserta ditambahkan ke utas obrolan (readonly).ParticipantRemoved: Pesan sistem yang menunjukkan bahwa seseorang telah dihapus dari utas obrolan.
Untuk informasi selengkapnya, lihat Jenis Pesan.
Tambahkan pengguna sebagai peserta ke thread obrolan
Setelah utas dibuat, Anda kemudian dapat menambahkan dan menghapus pengguna dari utas tersebut. Dengan menambahkan pengguna, Anda memberi mereka akses untuk dapat mengirim pesan ke utas dan menambahkan/menghapus peserta lain. Sebelum memanggil AddParticipants, pastikan Anda memperoleh token akses dan identitas baru untuk pengguna tersebut. Pengguna memerlukan 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:
- Wajib,
communicationUseradalah 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);
Dapatkan peserta utas
Gunakan GetParticipants untuk mengambil kembali peserta utas obrolan.
AsyncPageable<ChatParticipant> allParticipants = chatThreadClient.GetParticipantsAsync();
await foreach (ChatParticipant participant in allParticipants)
{
Console.WriteLine($"{((CommunicationUserIdentifier)participant.User).Id}:{participant.DisplayName}:{participant.ShareHistoryTime}");
}
Kirimkan konfirmasi bahwa pesan telah dibaca
Gunakan SendReadReceipt untuk memberi tahu peserta lain bahwa pengguna membaca pesan.
await chatThreadClient.SendReadReceiptAsync(messageId: messageId);
Menjalankan kode
Menjalankan aplikasi dari direktori aplikasi Anda dengan perintah dotnet run.
dotnet run
Contoh Kode
Temukan kode akhir untuk artikel ini di sampel GitHub Tambahkan Obrolan ke aplikasi Anda.
Prasyarat
Buat akun Azure dengan langganan aktif. Untuk detailnya, lihat Membuat akun gratis.
Instal Xcode dan CocoaPods. Anda menggunakan Xcode untuk membuat aplikasi iOS untuk artikel ini, dan CocoaPods untuk menginstal dependensi.
Buat sumber daya Azure Communication Services. Untuk mengetahui detailnya, lihat Mulai cepat: Buat dan kelola sumber daya Azure Communication Services. Anda perlu merekam titik akhir sumber daya dan string koneksi untuk artikel ini.
Buat dua pengguna di Azure Communication Services, dan terbitkan sebuah User Access Token. Pastikan untuk mengatur cakupan ke obrolan, dan catat string token serta string user_id tersebut. Dalam artikel ini, Anda memulai utas dengan peserta pertama, lalu menambahkan peserta kedua ke utas. Anda juga dapat menggunakan Azure CLI dan menjalankan perintah berikut 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.
Pengaturan
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. Lalu pilih Storyboard sebagai antarmuka, dan Swift sebagai bahasa.
Pilih Berikutnya,dan pilih direktori tempat Anda ingin proyek dibuat.
Instal pustaka
Gunakan CocoaPods untuk menginstal dependensi 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.6'
Instal dependensi dengan perintah berikut: pod install. Ini juga membuat ruang kerja Xcode.
Setelah menjalankan pod install, buka kembali proyek di Xcode dengan memilih yang baru dibuat .xcworkspace.
Siapkan placeholder
Buka ruang kerja ChatQuickstart.xcworkspace di Xcode, lalu buka ViewController.swift.
Dalam artikel ini, Anda menambahkan kode ke viewController, dan melihat output di konsol Xcode. Artikel ini tidak membahas pembuatan antarmuka pengguna di iOS.
Di bagian atas viewController.swift, impor AzureCommunication dan AzureCommunicationChat pustaka:
import AzureCommunicationCommon
import AzureCommunicationChat
Salin kode berikut ke dalam metode viewDidLoad() di 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 menggunakan semaphore untuk menyinkronkan kode Anda. Dalam langkah-langkah berikut, Anda mengganti placeholder dengan contoh kode menggunakan pustaka Chat Azure Communication Services.
Membuat aplikasi obrolan
Untuk membuat klien obrolan, gunakan titik akhir Communication Services Anda dan token akses yang dihasilkan sebagai bagian dari langkah-langkah prasyarat.
Pelajari selengkapnya tentang Token Akses Pengguna.
Artikel ini tidak mencakup pembuatan tingkat layanan untuk mengelola token untuk aplikasi obrolan Anda, tetapi kami merekomendasikannya. 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 dari 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 untuk fungsi obrolan. Anda menginstansiasi dengan 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 dan menghapus pengguna, mendapatkan informasi pengguna, serta mengirim pemberitahuan pengetikan dan tanda terima baca. |
Mulailah utas obrolan
CreateChatThreadResult adalah respons yang dihasilkan 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 penanganan penyelesaian sebelum melanjutkan. Pada langkah selanjutnya, gunakan threadId dari respons yang dikembalikan ke pengendali penyelesaian.
Daftar semua utas obrolan
Setelah membuat utas obrolan, kita dapat mencantumkan semua utas obrolan dengan memanggil listChatThreads metode di 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()
Dapatkan klien percakapan obrolan
Metode createClient mengembalikan 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!)
Kirim pesan ke utas obrolan
Gunakan metode send untuk mengirim pesan ke alur yang diidentifikasi oleh threadId.
SendChatMessageRequest digunakan untuk menjelaskan permintaan pesan:
- Gunakan
contentuntuk memasukkan konten pesan obrolan - Gunakan
senderDisplayNameuntuk menentukan nama tampilan pengirim - Gunakan
typeuntuk menentukan jenis pesan, seperti 'text' atau 'html' - Gunakan
metadatasecara 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 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 dari 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 peristiwa yang dapat Anda ikuti.
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 memanggil metode listMessages secara berkala 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()
Tambahkan pengguna sebagai peserta ke thread obrolan
Setelah utas dibuat, Anda kemudian dapat menambahkan dan menghapus pengguna dari utas tersebut. Dengan menambahkan pengguna, Anda memberi mereka akses untuk dapat mengirim pesan ke utas dan menambahkan/menghapus peserta lain. Sebelum memanggil add, pastikan Anda memperoleh token akses dan identitas baru untuk pengguna tersebut. Pengguna memerlukan token akses 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:
- Wajib,
idadalah 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 Communication Services dari 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.
Untuk informasi selengkapnya, lihat Mengaktifkan Pemberitahuan Push di aplikasi obrolan Anda.
Menjalankan kode
Menonaktifkan Sandboxing Skrip untuk Pengguna
Beberapa skrip di dalam pustaka yang ditautkan menghasilkan berkas selama proses build. Untuk mengaktifkan penulisan file, nonaktifkan Pembatasan Lingkungan Skrip Pengguna di Xcode.
Dalam proyek Xcode, di bawah Pengaturan Build, atur opsi Kotak Pasir Skrip Pengguna ke Tidak. Untuk menemukan pengaturan, ubah filter dari Dasar ke Semua atau gunakan bilah pencarian.
Jalankan proyek
Pada Xcode tekan tombol Run untuk membangun dan menjalankan projek. Pada konsol, Anda dapat melihat output dari kode dan output logger dari ChatClient.
Contoh kode
Temukan kode akhir untuk artikel ini di sampel GitHub Tambahkan Obrolan ke aplikasi Anda.
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 Pilih operasi pencarian, masukkan Communication Services Identity. 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. 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 Pilih operasi pencarian, masukkan Communication Services Chat. Dalam daftar tindakan, pilih Buat utas obrolan.
Masukkan URL titik akhir layanan 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 Pilih operasi pencarian, masukkan Communication Services Chat. Dalam daftar tindakan, pilih Kirim pesan ke utas obrolan.
Masukkan token akses, ID utas, konten, dan nama.
Daftar pesan utas obrolan
Untuk memverifikasi bahwa Anda mengirim pesan dengan benar:
Tambahkan tindakan baru.
Di kotak Pilih operasi pencarian, masukkan Communication Services Chat. 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, lihat 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, lihat cara membersihkan sumber daya Logic Apps.
Membersihkan sumber daya
Untuk membersihkan dan menghapus langganan Communication Services, Anda dapat menghapus grup sumber daya atau sumber daya. Menghapus grup sumber daya juga menghapus sumber daya apa pun yang terkait dengannya. Untuk informasi selengkapnya, lihat membersihkan sumber daya.
Langkah berikutnya
Artikel ini menjelaskan cara:
- Membuat aplikasi obrolan
- Buat "thread" dengan dua pengguna
- Kirim pesan ke utas
- Menerima pesan dari thread
- Menghapus pengguna dari utas
Artikel terkait
- Mulai menggunakan Pustaka Antarmuka Pengguna.
- Pelajari tentang konsep obrolan.
- Biasakan diri Anda dengan Chat SDK.
- Menggunakan Chat SDK di aplikasi React Native Anda.