直播互動訊息是用於加強直播間訊息溝通、提升互動體驗的服務。提供了豐富、易整合的SDK,可在使用者開發的直播應用中輕鬆整合評論、彈幕、點贊等能力。本文介紹互動Message Service端整合步驟。
前提條件
您已經建立好ApsaraVideo for Live(包含互動訊息)相關API許可權調用帳號,並建立RAM使用者。詳細說明,請參考建立RAM使用者並授權。
您已經建立了互動訊息應用,並記錄App相關資訊。如未建立,請前往ApsaraVideo for Live控制台建立。
部署AppServer
建立好互動訊息應用後,您會得到App對應的以下資訊:
應用AppID
應用鑒權AppKey
應用簽名AppSign
開通地區(也叫資料中心),是您選擇的App開通資料中心
您需要將以上資訊,記錄到您的後端儲存服務中。
實現您的AppServer。
AppServer主要功能之一是提供用戶端登入阿里雲互動Message Service的憑證。

Token採用以下演算法產生,其中role說明請參考下文身份許可權系統說明:
token = sha256(appId + appKey + userId + nonce + timestamp + role)欄位
說明
限制
appId
使用者的AppID
與開通時控制台返回一致
appKey
開通時返回的AppKey
與開通時控制台返回一致
userId
要登入的使用者的ID
僅限A-Z,a-z,0-9及"_",最長64位元組
nonce
格式:"AK-隨機串", 最長64位元組
僅限A-Z,a-z,0-9及"_",可為空白
role
角色,為admin時,表示該使用者可以調用“管控類”介面。
可為空白,如果要給目前使用者admin許可權,固定傳“admin”,否則表示該使用者不允許調用管控類介面。參考身份許可權系統。
timestamp
到期時間,到期時間 = 目前時間+到期時間長度,單位秒
從1970到到期時間的秒數
產生完Token,需要將Token連同appId,userId,nonce,role,timestamp及AppSign資訊發送給用戶端。請求Token返回樣本如下:
{ "auth": { "nonce": "產生token所用的nonce", "timestamp": 131231234, //<傳產生token所傳遞的timestamp值,數實值型別> "role": "產生token所傳遞的role", "user_id": "產生token所用的userid" }, "app_id": "{您的應用AppID}", "app_sign": "{您的應用AppSign}", "app_token": "{產生的token}" }
身份許可權系統說明
登入授予角色
授予方式:登入時傳入role值
角色名稱 | role值 | 說明 |
普通使用者 | 非admin | 可以調用加入群組,發送訊息等常規操作 |
管理員身份 | admin | 普通使用者操作,管控類操作,如:建立群組 |
群組身份角色
角色名稱 | 身份擷取方式 | 說明 |
群組建立者 | 群組建立者被自動授予 | 可以調用群組管控介面,如禁言,刪除群組,發送訊息不受禁言影響 |
群組管理員 | 建立群組時指定,或調用修改群組資訊指定 | 可以調用群組管控介面,如禁言,刪除群組,發送訊息不受禁言影響 |
其他使用者 | 登入後調用加入群組進群。用戶端登出或異常退出後,自動結束群組 | 加入、離開群組,發送訊息等。發送訊息受群組禁言影響 |
互動Message Service端SDK整合
您可以在您的商務服務器或AppServer中整合服務端介面。服務端介面地址請參考互動訊息(新)。單擊協助文檔中的調試按鈕,可以進入SDK調用頁面。您可以通過此頁面查看SDK整合資訊。
ApsaraVideo for Live(包含互動訊息)SDK提供V1.0、V2.0兩個版本的SDK,推薦使用V2.0版本。
地區填寫您建立App的資料中心。當前開通的資料中心為上海(cn-shanghai)、新加坡(ap-southeast-1)。
您可以根據您的應用主要服務地區,選擇已開通的資料中心。不同資料中心之間資料相互隔離。
所有的服務端介面在調用時,傳遞的資料中心應該與您開通時的資料中心保持一致,否則會造成無效調用。
// Configure Credentials authentication information, including ak, secret, token
StaticCredentialProvider provider = StaticCredentialProvider.create(Credential.builder()
// Please ensure that the environment variables ALIBABA_CLOUD_ACCESS_KEY_ID and ALIBABA_CLOUD_ACCESS_KEY_SECRET are set.
.accessKeyId(System.getenv("ALIBABA_CLOUD_ACCESS_KEY_ID"))
.accessKeySecret(System.getenv("ALIBABA_CLOUD_ACCESS_KEY_SECRET"))
//.securityToken(System.getenv("ALIBABA_CLOUD_SECURITY_TOKEN")) // use STS token
.build());
// Configure the Client
AsyncClient client = AsyncClient.builder()
.region("cn-qingdao") // Region ID
//.httpClient(httpClient) // Use the configured HttpClient, otherwise use the default HttpClient (Apache HttpClient)
.credentialsProvider(provider)
//.serviceConfiguration(Configuration.create()) // Service-level configuration
// Client-level configuration rewrite, can set Endpoint, Http request parameters, etc.
.overrideConfiguration(
ClientOverrideConfiguration.create()
// Endpoint 請參考 https://api.aliyun.com/product/live
.setEndpointOverride("live.aliyuncs.com")
//.setConnectTimeout(Duration.ofSeconds(30))
)
.build();服務端介面調用許可權說明
通過整合服務端SDK,您可以在您的商務服務器中調用相關的介面。例如:向群組發送訊息。詳細介面說明,請參考互動訊息(新)。
服務端調用和用戶端調用具有以下區別:
服務端使用RAM使用者鑒權。
服務端調用具有最高許可權,相關介面調用內部執行具有admin,creator許可權。
服務端發送訊息不受禁言影響,不進行安全性稽核。
回調
您可以配置回調,監聽應用的使用者事件,包括:登入、登出、加入群組、離開群組事件。回調說明文檔請參考建立互動訊息應用。
Alibaba Content Security Service審核
訊息層級的審核設定
在App開啟安全性稽核的前提下,您可以在訊息層級設定的審核操作包含以下內容。
發送的訊息是否要進行審核(例如:禮物訊息等自訂的非聊天內容可以不進行審核)。
將發送的訊息與待審核的內容分開(例如:待發送的內容文本為hello,但您自訂的訊息包含帳戶圖片等其他裝飾資訊,您可以選擇將發送的訊息與審核內容分開)。