Messaging interaktif adalah fitur yang digunakan untuk meningkatkan komunikasi pesan di ruang siaran langsung dan memperkaya pengalaman interaktif. ApsaraVideo Live menyediakan SDK yang kaya dan mudah diintegrasikan untuk membantu Anda mengimplementasikan kemampuan seperti komentar, komentar berjalan (bullet comments), dan like dalam aplikasi siaran langsung yang dikembangkan oleh bisnis Anda. Topik ini menjelaskan cara mengintegrasikan messaging interaktif di sisi server.
Prasyarat
Akun Alibaba Cloud yang dapat mengakses API ApsaraVideo Live telah dibuat, serta Pengguna Resource Access Management (RAM) dengan izin terkait telah dibuat. Untuk informasi selengkapnya, lihat Buat Pengguna RAM dan berikan izin kepada Pengguna RAM.
Aplikasi messaging interaktif telah dibuat, dan informasi terkait aplikasi tersebut telah dicatat. Jika belum tersedia aplikasi messaging interaktif, buat satu di Konsol ApsaraVideo Live.
Deploy AppServer
Setelah aplikasi messaging interaktif dibuat, Anda dapat memperoleh informasi berikut tentang aplikasi tersebut:
ID Aplikasi (AppID)
Kunci Aplikasi (AppKey)
Tanda Tangan Aplikasi (AppSign)
Wilayah tempat aplikasi berada, yaitu Pusat Siaran Langsung tempat aplikasi dideploy.
Anda perlu mencatat informasi di atas di penyimpanan backend Anda.
Implementasikan AppServer Anda.
AppServer memungkinkan Anda menyediakan kredensial bagi client untuk login ke messaging interaktif Alibaba Cloud.

Token dihasilkan menggunakan algoritma berikut. Untuk informasi lebih lanjut tentang role, lihat bagian "Izin berbasis identitas" dalam topik ini.
token = sha256(appId + appKey + userId + nonce + timestamp + role)Bidang
Deskripsi
Batas
appId
ID aplikasi.
ID ini dikembalikan oleh Konsol saat Anda membuat aplikasi.
appKey
AppKey.
Kunci ini dikembalikan oleh Konsol saat Anda membuat aplikasi.
userId
User ID.
ID ini panjangnya maksimal 64 karakter dan hanya boleh berisi huruf, angka, dan garis bawah (_).
nonce
Nonce. Formatnya AK-String dan panjangnya maksimal 64 byte.
Nilai field ini hanya boleh berisi huruf, angka, dan garis bawah (_). Field ini juga boleh dikosongkan.
role
Role. Nilai admin menunjukkan bahwa pengguna dapat melakukan operasi management.
Field ini boleh dikosongkan. Jika ingin memberikan izin administrator kepada pengguna, atur nilainya menjadi admin. Nilai selain admin menunjukkan bahwa pengguna tidak dapat melakukan operasi management. Untuk informasi selengkapnya, lihat bagian "Izin berbasis identitas" dalam topik ini.
timestamp
Waktu kedaluwarsa. Satuan: detik. Waktu kedaluwarsa = Waktu saat ini + Periode validitas.
Nilainya berupa Unix timestamp, yaitu jumlah detik yang telah berlalu sejak pukul 00:00:00 UTC pada 1 Januari 1970 hingga token kedaluwarsa.
Setelah token dihasilkan, Anda perlu mengirimkan token tersebut, nilai appId, userId, nonce, role, dan timestamp, serta application signature ke client. Contoh kode:
{ "auth": { "nonce": "Nonce yang ditentukan saat menghasilkan token.", "timestamp": 131231234, //<Timestamp yang ditentukan saat menghasilkan token, berupa nilai numerik.> "role": "Role yang ditentukan saat menghasilkan token.", "user_id": "User ID yang ditentukan saat menghasilkan token." }, "app_id": "{Application ID Anda.}", "app_sign": "{Application signature Anda.}", "app_token": "{Token yang dihasilkan.}" }
Izin berbasis identitas
Role login
Role login pengguna diteruskan saat pengguna login.
Nama peran | Nilai | Deskripsi |
Pengguna biasa | Nilai selain admin | Pengguna dengan role ini dapat melakukan operasi biasa, seperti bergabung ke grup dan mengirim pesan. |
Administrator | admin | Pengguna dengan role ini dapat melakukan operasi biasa dan operasi management, seperti membuat grup. |
Role terkait grup
Nama peran | Metode penugasan | Deskripsi |
Group creator | Role ini secara otomatis diberikan kepada pengguna yang membuat grup. | Pengguna dengan role ini dapat melakukan operasi management, seperti membisukan pengguna atau grup, serta menghapus grup. Jika grup dibisukan, pengguna dengan role ini tetap dapat mengirim pesan. |
Group administrator | Role ini diberikan kepada pengguna oleh pembuat grup saat grup dibuat atau melalui pemanggilan operasi API untuk memodifikasi informasi grup. | Pengguna dengan role ini dapat melakukan operasi management, seperti membisukan pengguna atau grup, serta menghapus grup. Jika grup dibisukan, pengguna dengan role ini tetap dapat mengirim pesan. |
Others | Role ini secara otomatis diberikan kepada pengguna yang bukan pembuat grup maupun administrator grup saat pengguna tersebut bergabung ke grup. Jika pengguna logout atau keluar karena exception, pengguna tersebut secara otomatis meninggalkan grup. | Pengguna dengan role ini dapat melakukan operasi seperti bergabung ke grup, meninggalkan grup, dan mengirim pesan. Jika grup dibisukan, pengguna dengan role ini tidak dapat mengirim pesan. |
Integrasikan messaging interaktif di sisi server
Anda dapat mengintegrasikan API sisi server di server bisnis atau AppServer Anda. Untuk informasi lebih lanjut tentang operasi API tertentu, lihat Messaging interaktif (baru). Anda dapat mengklik tombol Debug di halaman operasi di OpenAPI Explorer untuk membuka halaman pemanggilan operasi tersebut. Di halaman pemanggilan operasi, Anda dapat melihat informasi integrasi SDK.
ApsaraVideo Live menyediakan SDK (termasuk SDK messaging interaktif) dalam versi 1.0 dan 2.0. Kami merekomendasikan penggunaan V2.0.
Dalam contoh kode berikut, tentukan wilayah tempat aplikasi yang Anda buat berada. Nilai yang valid: cn-shanghai dan ap-southeast-1 (Singapura).
Saat membuat aplikasi, pilih wilayah sesuai kebutuhan bisnis Anda. Data di wilayah berbeda saling terisolasi.
Saat memanggil operasi API, wilayah yang Anda tentukan harus sama dengan wilayah tempat aplikasi berada. Jika tidak, pemanggilan Anda tidak valid.
// Konfigurasikan informasi autentikasi Credentials, termasuk ak, secret, token
StaticCredentialProvider provider = StaticCredentialProvider.create(Credential.builder()
// Pastikan variabel lingkungan ALIBABA_CLOUD_ACCESS_KEY_ID dan ALIBABA_CLOUD_ACCESS_KEY_SECRET telah diatur.
.accessKeyId(System.getenv("ALIBABA_CLOUD_ACCESS_KEY_ID"))
.accessKeySecret(System.getenv("ALIBABA_CLOUD_ACCESS_KEY_SECRET"))
//.securityToken(System.getenv("ALIBABA_CLOUD_SECURITY_TOKEN")) // gunakan STS token
.build());
// Konfigurasikan Client
AsyncClient client = AsyncClient.builder()
.region("cn-qingdao") // Region ID
//.httpClient(httpClient) // Gunakan HttpClient yang telah dikonfigurasi, jika tidak maka gunakan HttpClient default (Apache HttpClient)
.credentialsProvider(provider)
//.serviceConfiguration(Configuration.create()) // Konfigurasi tingkat layanan
// Rewrite konfigurasi tingkat client, dapat mengatur Endpoint, parameter permintaan Http, dll.
.overrideConfiguration(
ClientOverrideConfiguration.create()
// Endpoint. Kunjungi https://api.alibabacloud.com/product/live sebagai referensi.
.setEndpointOverride("live.aliyuncs.com")
//.setConnectTimeout(Duration.ofSeconds(30))
)
.build();Izin pemanggilan API sisi server
Setelah Anda mengintegrasikan SDK server yang disediakan oleh ApsaraVideo Live, Anda dapat memanggil operasi API terkait di server bisnis Anda. Misalnya, Anda dapat memanggil operasi API untuk mengirim pesan ke grup Anda. Untuk informasi lebih lanjut tentang operasi API tertentu, lihat Messaging interaktif (baru).
Pemanggilan sisi server dan sisi client memiliki perbedaan berikut:
Server melakukan autentikasi berdasarkan Pengguna RAM.
Pemanggilan sisi server memiliki hak istimewa tertinggi, sehingga memberikan Anda izin administrator dan pembuat.
Jika grup dibisukan, Anda tetap dapat melakukan pemanggilan sisi server untuk mengirim pesan di grup tersebut. Pesan yang dikirim melalui pemanggilan sisi server tidak memerlukan moderasi konten.
Callbacks
Anda dapat mengonfigurasi callbacks untuk mendengarkan event pengguna aplikasi, termasuk login, logout, bergabung ke grup, dan meninggalkan grup. Untuk informasi selengkapnya, lihat CreateLiveMessageApp.
Moderasi konten
Pengaturan moderasi tingkat pesan
Jika Anda mengaktifkan moderasi konten untuk aplikasi, Anda dapat mengonfigurasi pengaturan moderasi berikut di tingkat pesan.
Tentukan apakah akan memoderasi pesan yang dikirim. Misalnya, Anda dapat memilih untuk tidak memoderasi konten non-chat kustom seperti pesan hadiah.
Pisahkan pesan yang dikirim dari bagian konten dalam pesan yang ingin dimoderasi. Misalnya, jika teks pesan kustom yang Anda kirim adalah "hello", tetapi pesan tersebut berisi informasi tambahan seperti avatar pengguna, Anda dapat memisahkan pesan yang dikirim dari informasi tambahan yang menunggu moderasi.