调用CreateEventSubscribe创建订阅房间消息的回调。
使用说明
本接口用于创建订阅房间消息的回调。例如:在创建回调时,您可以配置回调地址、事件类型等参数。
QPS限制
本接口的单用户QPS限制为1000次/分钟。超过限制,API调用会被限流,这可能会影响您的业务,请合理调用。更多信息,请参见QPS限制。
调试
您可以在OpenAPI Explorer中直接运行该接口,免去您计算签名的困扰。运行成功后,OpenAPI Explorer可以自动生成SDK代码示例。
请求参数
| 名称 | 类型 | 是否必选 | 示例值 | 描述 | 
|---|---|---|---|---|
| Action | String | 是 | CreateEventSubscribe | 
                               系统规定参数。取值:CreateEventSubscribe。  | 
                           
                        
| AppId | String | 是 | 9qb1**** | 
                               订阅的应用ID。  | 
                           
                        
| ChannelId | String | 否 | 123333 | 
                               订阅的频道ID。 说明 如果Users.N参数不为空,则此参数必填。
                                  
                               | 
                           
                        
| CallbackUrl | String | 是 | http://****.com/callback | 
                               回调地址。回调内容请参见以下回调内容示例。  | 
                           
                        
| ClientToken | String | 是 | 123e4567-e89b-12d3-a456-42665544**** | 
                               客户端创建订阅的幂等标识。  | 
                           
                        
| NeedCallbackAuth | Boolean | 否 | false | 
                               是否开启回调鉴权,取值: 
 详细信息请参见以下回调鉴权说明。  | 
                           
                        
| Role | Long | 否 | 1 | 
                               用户角色,取值: 
  | 
                           
                        
| Users.N | String | 否 | user1 | 
                               订阅哪些用户的消息,参数为空表示订阅该房间全部用户(包含主播和观众)。格式如下所示: 
                               | 
                           
                        
| Events.N | String | 是 | ChannelEvent | 
                               订阅的事件,取值: 
 详细信息请参见以下表格说明。  | 
                           
                        
CallBack
RTC通过用户传入的CallbackUrl,回调用户的内容,示例如下所示:
Request:
POST /callbackURL
Body
(x-www-form-urlencoded)
{
    "MsgId": "消息ID",
    "MsgTimestamp": 12312324, // 消息发送时的Unix时间戳
    "SubscribeID": "订阅ID",
    "AppId":"",     // 产生该消息的appid 
    "ChannelID":"", // 产生该消息的频道
    "Contents": [
      {
        "Event": "UserEvent",//订阅的事件:频道内用户事件
        "UserEvent": {
          "UserId": "80331631628db0d1",    // 用户ID
          "EventTag": "Publish",    // 事件,包括Join, Leave, Publish, Unpublish, Roleupdate
          "SessionId": "0dr15rrnhkz0jnvz6o8sxo01hoondhu1", // 产生该事件的SessionID
          "Timestamp": 1609854786,    // 事件发生Unix 时间戳
          "Reason": 1, // 入会、离会原因,仅Join事件有
          "Role": 1, //  角色类型, 主播,观众
          "TerminalType": 1, // 终端类型, win, android
          "UserType":1, // 用户类型,native sdk, applete, webrtc
          "Medias":[1,2,3] // 推流类型:用户推了哪些流
        }
      },
      {
        "Event": "ChannelEvent",//订阅的事件:频道事件
        "ChannelEvent": {
          "ChannelId": "8888889999",
          "EventTag": "Open",   // 频道事件,包括开启与关闭Open, Close
          "Timestamp": 1609854530 // 事件发生Unix 时间戳
        }
      }
   ]
}
Response 
HTTP STATUS 200
                  UserEvent用户事件
| 
                               参数  | 
                           
                           
                               类型  | 
                           
                           
                               是否必须  | 
                           
                           
                               描述  | 
                           
                        
|---|---|---|---|
| 
                               UserId  | 
                           
                           
                               string  | 
                           
                           
                               是  | 
                           
                           
                               用户ID。  | 
                           
                        
| 
                               SessionId  | 
                           
                           
                               string  | 
                           
                           
                               是  | 
                           
                           
                               用户SessionID。  | 
                           
                        
| 
                               EventTag  | 
                           
                           
                               string  | 
                           
                           
                               是  | 
                           
                           
                               事件类型,取值: 
  | 
                           
                        
| 
                               Timestamp  | 
                           
                           
                               number  | 
                           
                           
                               是  | 
                           
                           
                               事件发生的时间戳。  | 
                           
                        
| 
                               Reason  | 
                           
                           
                               integer  | 
                           
                           
                               是  | 
                           
                           
                               入会、离会原因(仅Join事件有),取值: 
  | 
                           
                        
| 
                               Role  | 
                           
                           
                               integer  | 
                           
                           
                               是  | 
                           
                           
                               角色类型,取值: 
  | 
                           
                        
| 
                               TerminalType  | 
                           
                           
                               integer  | 
                           
                           
                               是  | 
                           
                           
                               终端类型,取值: 
  | 
                           
                        
| 
                               UserType  | 
                           
                           
                               integer  | 
                           
                           
                               是  | 
                           
                           
                               用户类型,取值: 
  | 
                           
                        
| 
                               Medias  | 
                           
                           
                               integer  | 
                           
                           
                               是  | 
                           
                           
                               推流类型,取值: 
  | 
                           
                        
ChannelEvent频道事件
| 
                               参数  | 
                           
                           
                               类型  | 
                           
                           
                               是否必须  | 
                           
                           
                               描述  | 
                           
                        
|---|---|---|---|
| 
                               EventTag  | 
                           
                           
                               string  | 
                           
                           
                               是  | 
                           
                           
                               事件类型,取值: 
  | 
                           
                        
| 
                               Timestamp  | 
                           
                           
                               number  | 
                           
                           
                               是  | 
                           
                           
                               事件发生的时间戳。  | 
                           
                        
回调鉴权说明
事件回调鉴权功能默认关闭,用户可在创建事件回调时启用鉴权。启用鉴权后,鉴权逻辑如下所示:
- 阿里云音视频通信服务发起回调请求时在HTTP(S)请求头中包含
Ali-Rtc-Timestamp和Ali-Rtc-Signature字段,供回调消息接收服务端进行签名认证。Ali-Rtc-Timestamp值计算方式为:Ali-Rtc-Signature=MD5SUM(MD5CONTENT)。其中,MD5CONTENT=回调域名|Ali-Rtc-Timestamp取值|鉴权Key;回调域名指配置回调URL的域名,鉴权Key指用户创建AppId时生成的AppKey。 - 回调消息接收服务端接收回调消息时,将回调域名、
Ali-Rtc-Timestamp取值、鉴权Key进行拼接后计算MD5值,得到加密字符串,再将计算出的加密字符串与音视频通信服务发起的HTTP(S)请求头中的Ali-Rtc-Signature字段值进行对比,如果不一致,则请求非法。 
返回数据
| 名称 | 类型 | 示例值 | 描述 | 
|---|---|---|---|
| SubscribeId | String | ad53276431c**** | 
                               创建的订阅ID。  | 
                           
                        
| RequestId | String | 760bad53276431c499e30dc36f6b26be | 
                               请求ID。  | 
                           
                        
示例
请求示例
http(s)://rtc.aliyuncs.com/?Action=CreateEventSubscribe
&AppId=9qb1****
&CallbackUrl=http://****.com/callback
&ClientToken=123e4567-e89b-12d3-a456-42665544****
&Events.1=ChannelEvent
&<公共请求参数>
                  正常返回示例
XML格式
                  
HTTP/1.1 200 OK
Content-Type:application/xml
<CreateEventSubscribeResponse>
<RequestId>760bad53276431c499e30dc36f6b26be</RequestId>
<SubscribeId>ad53276431c****</SubscribeId>
</CreateEventSubscribeResponse>
                  JSON格式
                  
HTTP/1.1 200 OK
Content-Type:application/json
{
  "RequestId" : "760bad53276431c499e30dc36f6b26be",
  "SubscribeId" : "ad53276431c****"
}