Webhook 回调事件

更新时间不可用

查看智能云会议的 Webhook 回调事件,了解关键概念、参数说明、使用限制和接入注意事项。

本文介绍智能云会议 Webhook 回调事件。

Webhook 是一种基于 HTTP 协议的回调机制,允许服务端主动推送数据。当你订阅的事件发生时,声网智能云会议服务器会将事件消息发送给声网消息通知服务器,然后声网消息通知服务器会通过 HTTPS POST 请求将事件通知投递给你的服务器。

调用创建房间 API 时,通过 roomProperties.webhookConfig 字段设置接收 Webhook 事件的服务器地址和订阅事件列表后,你可以在这些事件发生后收到回调通知。

回调格式

回调会通过 HTTPS POST 请求发送到你的服务器,因此你的服务器必须提供 HTTPS 地址,并支持接收 POST 请求。

回调请求的 Header 中包含以下字段:

  • Content-Type:application/json。代表指定请求 Body 的类型为 JSON,以 UTF-8 字符编码进行编码。

回调请求的 Body 中包含以下字段:

字段类型描述
roomUuidString会议房间 UUID。
cmdInteger事件类型
sequenceInteger事件序号,用于标识同一个房间内发生的事件。在同一个房间内,sequence 不会重复,并且会自动递增,以确保事件的有序性。
versionInteger事件版本号。
tsInteger事件发生的 Unix 时间戳。UTC 时间,单位为毫秒。
dataObject事件的具体数据,不同事件会包含不同数据,详见事件类型。
表格内容超出当前宽度,可横向滚动查看更多列。
JSON
{
  "roomUuid": "xxx",
  "cmd": 1,
  "sequence": 1,
  "version": 1,
  "ts": 1611564500488,
  "data": {
    ...
  }
}

事件类型

cmd 的不同数值代表不同的事件,每个事件的具体数据在 data 字段中展示。

会议状态变更事件

cmd = 1,代表会议状态变更事件。

JSON
{
  ...
  "data": {
    "startTime": 1611561776588,
    "state": 1
  }
}
字段类型描述
stateInteger

当前会议状态:

  • 0:会议未开始。
  • 1:会议进行中。
  • 2:会议已结束。会议持续时长结束时,当前会议进入该状态,此时用户依然可以正常进入会议和逗留。
  • 3:会议房间关闭。会议持续时长结束后,会议拖堂时间也结束时,当前会议进入该状态,此时会议内用户会被踢出,用户也无法再进入会议。
startTimeNumber会议开始时间,Unix 时间戳(毫秒),UTC 时间。仅当会议进行中(state = 1)时有该字段。
endTimeNumber会议结束时间,Unix 时间戳(毫秒),UTC 时间。仅当会议已结束(state = 2)时有该字段。
closeTimeNumber会议关闭时间,Unix 时间戳(毫秒),UTC 时间。仅当会议房间已关闭(state = 3)时有该字段。
表格内容超出当前宽度,可横向滚动查看更多列。

用户进出会议事件

cmd = 20,代表用户进出会议事件。

JSON
{
  ...
  "data": {
    "total": 2,
    "onlineUsers": [
      {
        "userName": "user_name_1",
        "userUuid": "uuid_1",
        "role": "host",
        "userProperties": {},
        "streamUuid": "stream_uuid_1",
        "type": 1,
        "updateTime": 1611561776588
      }
    ],
    "offlineUsers": [
      {
        "userName": "user_name_2",
        "userUuid": "uuid_2",
        "role": "participant",
        "userProperties": {},
        "streamUuid": "stream_uuid_2",
        "type": 1,
        "updateTime": 1611561776588
      }
    ]
  }
}
字段类型描述
totalInteger进入和退出会议的用户总数。
onlineUsersObject Array进入会议的用户的具体信息。
offlineUsersObject Array退出会议的用户的具体信息。
表格内容超出当前宽度,可横向滚动查看更多列。

进出会议的用户具体信息如下:

字段类型描述
userNameString用户在会议房间中的名称。
userUuidString用户 UUID。
roleString

用户在会议房间中的角色:

  • host:主持人。
  • cohost:助理主持人。
  • participant:参会人。
userPropertiesObject用户属性。
streamUuidString用户流的 UUID。
typeInteger

对于进入房间的用户,该字段表示用户进入的方式:

  • 1:正常进入。

对于退出房间的用户,该字段标识用户退出的方式:

  • 1:由于客户端原因退出会议,例如正常离开会议、应用被强制关闭或网络状况不佳导致断线。
  • 2:被踢出会议。
updateTimeNumber用户进出会议时的 Unix 时间戳,单位为毫秒,UTC 时间。
表格内容超出当前宽度,可横向滚动查看更多列。

页面录制状态变更事件

cmd = 1001,代表页面录制状态变更事件。

JSON
{
  ...
  "data": {
    "recordId": "record_id",
    "sid": "session_id",
    "resourceId": "resource_id",
    "state": 1,
    "startTime": 1611564500488,
    "onhold": false
  }
}
字段类型描述
recordIdString一次录制的唯一标识符。调用设置录制状态 API 开始录制并结束录制,视为一次录制。仅当录制进行中(state = 1)时有该字段。
sidString声网云端录制服务的 sid。仅当录制进行中(state = 1)时有该字段。
resourceIdString声网云端录制服务的 resourceId。仅当录制进行中(state = 1)时有该字段。
stateInteger

当前录制状态:

  • 0:录制已结束。
  • 1:录制进行中。
startTimeNumber录制开始时间,Unix 时间戳(毫秒),UTC 时间。录制开始后该字段有值。
endTimeNumber录制结束时间,Unix 时间戳(毫秒),UTC 时间。录制结束后有该字段。
retryTimesInteger当前重试次数。设置过重试次数后,才有该字段。
readyBoolean待录制的页面加载完成时,该字段为 true;否则,没有该字段。
onholdBoolean

启动录制任务时是否暂停了录制:

  • true:暂停录制中。
  • false:正常录制中。
表格内容超出当前宽度,可横向滚动查看更多列。

页面录制文件上传成功事件

cmd = 1002,代表页面录制文件上传成功事件。

JSON
{
  ...
  "data": {
    "recordId": "record_id",
    "addUrl": "https://example1.com/example1.mp4",
    "recordDetails": [
      {
        "url": "https://example2.com/example2.mp4"
      }
    ],
    "allUploaded": true
  }
}
字段类型描述
recordIdString一次录制的唯一标识符。
addUrlString本次新增的录制文件地址。
recordDetailsObject Array录制文件列表。
recordDetails.urlString当前所有录制文件地址(含本次新增的录制文件地址)。
allUploadedBoolean所有文件都上传完成时,该字段为 true;否则,没有该字段。
表格内容超出当前宽度,可横向滚动查看更多列。

AI 会议纪要生成成功事件

cmd = 1003,代表 AI 会议纪要生成成功事件。

JSON
{
  ...
  "data": {
    "agentId": "agent_id",
    "startTime": 1611564500488,
    "endTime": 1611564500488,
    "summary": ""
  }
}
字段类型描述
agentIdStringAI 会议纪要的任务 ID。
startTimeLongAI 会议纪要开始时的 Unix 时间戳。UTC 时间,单位为毫秒。
endTimeLongAI 会议纪要结束时的 Unix 时间戳。UTC 时间,单位为毫秒。
summaryStringAI 会议纪要的内容。
表格内容超出当前宽度,可横向滚动查看更多列。