全部產品
Search
文件中心

ApsaraVideo Live:CreateEventSub

更新時間:Jul 15, 2026

建立訂閱房間訊息的回呼。

介面說明

本介面用於建立訂閱房間訊息的回呼。例如:在建立回呼時,您可以設定回呼位址、事件類型等參數。

QPS 限制

本介面的單一使用者 QPS 限制為 100 次/秒。超過限制,API 呼叫會被限流,這可能會影響您的業務,請合理呼叫。

調試

您可以在OpenAPI Explorer中直接運行該介面,免去您計算簽名的困擾。運行成功後,OpenAPI Explorer可以自動產生SDK程式碼範例。

調試

授權資訊

下表是API對應的授權資訊,可以在RAM權限原則語句的Action元素中使用,用來給RAM使用者或RAM角色授予調用此API的許可權。具體說明如下:

  • 操作:是指具體的許可權點。

  • 存取層級:是指每個操作的存取層級,取值為寫入(Write)、讀取(Read)或列出(List)。

  • 資源類型:是指操作中支援授權的資源類型。具體說明如下:

    • 對於必選的資源類型,用前面加 * 表示。

    • 對於不支援資源級授權的操作,用全部資源表示。

  • 條件關鍵字:是指雲產品自身定義的條件關鍵字。

  • 關聯操作:是指成功執行操作所需要的其他許可權。操作者必須同時具備關聯操作的許可權,操作才能成功。

操作

存取層級

資源類型

條件關鍵字

關聯操作

live:CreateEventSub

none

*Rtc

acs:live::{#accountId}:rtc/{#AppId}

請求參數

名稱

類型

必填

描述

樣本值

AppId

string

訂閱的應用程式 ID。透過存取 影片直播>直播+>即時音影片>應用程式管理 可以查看擁有的應用程式 ID,沒有時可以透過【建立應用程式】進行新建。

9qb1****

ChannelId

string

訂閱的頻道 ID。您可透過呼叫 ListEventSub 介面查詢訂閱的頻道 ID。

說明
  • 如果 Users.N 參數不為空,則此參數必填。

  • ChannelId 為 * 或者不填,表示為全頻道訂閱,每個 AppId 只允許 1 個全頻道訂閱。

  • 每個 AppId 最多同時允許建立 20 個訂閱。

123333

Users

array

訂閱哪些使用者的訊息,參數為空表示訂閱該房間全部使用者(包含主播和觀眾)。格式如下所示:

Users.1=****
Users.2=****
......

string

使用者 ID。

user1

Events

array

訂閱事件。

string

訂閱的事件,取值:

  • ChannelEvent:頻道事件。

  • UserEvent:頻道內使用者事件。

ChannelEvent

CallbackUrl

string

回呼位址。回呼內容請參見以下回呼內容範例。

http://****.com/callback

CallBack

透過使用者傳入的 CallbackUrl,回呼使用者的內容,範例如下所示:

Request:

POST /callbackURL

Body
application/json

{
    "MsgId": "訊息 ID",
    "MsgTimestamp": 12312324, // 訊息傳送時的 Unix 時間戳記
    "SubscribeID": "訂閱 ID",
    "AppId":"",     // 產生該訊息的 AppId 
    "ChannelID":"", // 產生該訊息的頻道
    "Contents": [
      {
        "Event": "UserEvent",//訂閱的事件:頻道內使用者事件
        "UserEvent": {
          "UserId": "80331631628*****",    // 使用者 ID
          "EventTag": "Publish",    // 事件,包括 Join, Leave, Publish, Unpublish, Roleupdate
          "SessionId": "0dr15rrnhkz0jnvz6o8sxo0*****", // 產生該事件的 SessionID
          "Timestamp": 1609854786,    // 事件發生 Unix 時間戳記
          "Reason": 1, // 入會、離會原因,僅 Join 事件有
          "Role": 1, //  角色類型,主播,觀眾
          "CurrentMedias":"1,2,3"// 推流類型:使用者推了哪些流
        }
      },
      {
        "Event": "ChannelEvent",//訂閱的事件:頻道事件
        "ChannelEvent": {
          "ChannelId": "88888****",
          "EventTag": "Open",   // 頻道事件,包括開啟與關閉 Open, Close
          "Timestamp": 1609854530 // 事件發生 Unix 時間戳記
        }
      }
   ]
}

Response 
HTTP STATUS 200

UserEvent 使用者事件

參數類型是否必填描述
UserIdstring使用者 ID。
SessionIdstring使用者 SessionID。
EventTagstring事件類型,取值:
Join:入會。
Leave:離會。
PublishVideo:開始推影片流。
PublishAudio:開始推音訊流。
PublishScreen:開始螢幕分享。
UnpublishVideo:停止推影片流。
UnpublishAudio:停止推音訊流。
UnpublishScreen:停止螢幕分享。
Roleupdate:角色切換。
Timestampnumber事件發生的時間戳記。
Reasoninteger入會、離會原因(僅 Join 事件有),取值:
1:正常入會、離會。
2:重連入會(當前會中已有該使用者執行個體,該使用者再次入會)。
3:跨頻道轉推。
4:逾時離會。
5:使用者啟用新的工作階段,當前工作階段被擠下線。
6:被踢出。
7:頻道解散。
Roleinteger角色類型,取值:
1:主播。
2:觀眾。
CurrentMediasinteger推流類型,取值:
1:音訊。
2:影片。
3:螢幕分享。

ChannelEvent 頻道事件

參數類型是否必填描述
EventTagstring事件類型,取值:
Open:會議開始。
Close:會議結束。
Timestampnumber事件發生的時間戳記。

回呼驗證說明

事件回呼驗證功能預設開啟,驗證邏輯如下所示:

  • 阿里雲端影片直播服務發起回呼請求時在 HTTP(S) 請求標頭中包含 Ali-Rtc-Timestamp 和 Ali-Rtc-Signature 欄位,供回呼訊息接收伺服器進行簽章認證。Ali-Rtc-Timestamp 值計算方式為:Ali-Rtc-Signature=MD5SUM(MD5CONTENT)。其中,MD5CONTENT=回呼網域|Ali-Rtc-Timestamp 取值|驗證金鑰;回呼網域指設定回呼 URL 的網域,驗證金鑰指使用者建立 AppId 時產生的 AppKey。

  • 回呼訊息接收伺服器接收回呼訊息時,將回呼網域、Ali-Rtc-Timestamp 取值、驗證金鑰進行拼接後計算 MD5 值,得到加密字串,再將計算出的加密字串與音影片通訊服務發起的 HTTP(S) 請求標頭中的 Ali-Rtc-Signature 欄位值進行對比,如果不一致,則請求非法。

回呼異常重試

阿里雲端發起回呼請求時,僅當您的業務伺服器回應 HTTP 狀態碼為 200 時認定為回呼成功。若回呼失敗,阿里雲端會重試 7 次,分別間隔 1 秒、2 秒、5 秒、10 秒、1 分鐘、2 分鐘、5 分鐘。每次重試請求均會產生對應的回呼記錄。

異常處理

已經入會或者推流的用戶端和阿里雲端的伺服器端有心跳保活機制,當用戶端因為斷網、App 關閉異常等原因導致心跳保活失敗(90 秒未收到用戶端心跳資訊則認定為失敗),伺服器端會判定用戶端異常逾時離開,並產生使用者停止推流和離會的事件回呼。

返回參數

名稱

類型

描述

樣本值

object

Schema of Response

RequestId

string

請求 ID。

760bad53276431c499e30dc36f6b****

SubscribeId

string

建立的訂閱 ID。

ad53276431c****

樣本

正常返回樣本

JSON格式

{
  "RequestId": "760bad53276431c499e30dc36f6b****",
  "SubscribeId": "ad53276431c****"
}

錯誤碼

HTTP status code

錯誤碼

錯誤資訊

描述

400 InputInvalid %s. 輸入參數不合法。
400 QuotaLimitError %s. 每個 AppId,最多同時允許建立 20 個訂閱,並且只允許 1 個全頻道訂閱。
400 ErrorInvalidCallBackUrl %s. CallBackURL無效,請檢查後重新嘗試。
500 ServerError %s. 未知錯誤,請稍後重試或提交工單諮詢。
403 NoAuth %s. 沒有權限。
404 ResourceNotExist %s. 請求資源不存在,請檢查後重新嘗試。

訪問錯誤中心查看更多錯誤碼。

變更歷史

更多資訊,參考變更詳情