Pano开发者中心
  • 开发者中心
  • 下载中心

›RESTful API

新手入门

  • 简介
  • 名词解释
  • 创建第一个应用

规则说明

  • Channel ID命名规则
  • 权限控制
  • 计费说明
  • 频道最大时长说明
  • 每月一万分钟免费说明
  • 布局参数说明
  • 水印

场景方案

    教育行业

    • 1vN互动小班课
    • 互动直播大班课

快速接入

  • 简介
  • 音视频

    • Windows (C++)
    • iOS (Objective-C)
    • Android (Java)
    • Web
    • Electron
    • Flutter
    • React Native
    • Unity

    白板

    • Windows (C++)
    • iOS (Objective-C)
    • Android (Java)
    • Web
    • Electron
    • Flutter
    • React Native

高级功能(RTC)

  • 简介
  • 屏幕共享
  • 分组讨论
  • 状态回调
  • 设备诊断
  • 音量指示
  • 控制声音
  • 声卡操作
  • 混音/伴音
  • 混响
  • 耳返
  • 变声
  • 美颜
  • 音视频数据回调
  • 音视频外部采集
  • 收发多路视频
  • 多窗口渲染
  • 性能检测
  • 截图
  • 反馈

高级功能(RTS)

  • 简介
  • 白板

    • Windows (C++)
    • iOS (Objective-C)
    • Android (Java)
    • Web
    • Flutter

    标注

    • 视频标注
    • 共享标注
    • 外部标注

    消息

    • 消息服务

    远程控制

    • 远程控制

操作实践

  • 切换大小屏

RESTful API

  • 基本格式
  • 生成Token
  • 频道管理
  • 云端录制
  • CDN推流
  • 文档转码
  • 消息服务
  • 服务端消息通知

SDK API

  • SDK接口说明
  • Windows (C++)
  • macOS/iOS (Objective-C)
  • Android (Java)
  • Web SDK (IE专用版)
  • Web SDK

    • 浏览器兼容性
    • RtcEngine
    • GroupManager
    • RtcWhiteboard
    • RtsService
    • RtcMessage
    • Annotation
    • Constants

更新记录

  • 简介
  • Windows
  • macOS
  • iOS
  • Android
  • Electron
  • Flutter
  • React Native
  • Unity
  • Web(全功能SDK)
  • Web(RTS SDK)
  • Web(IE专用音视频SDK)

帮助

  • FAQ
  • 更多帮助

频道管理

频道管理API,主要用于服务器端查询在线频道列表,查询在线频道详情,关闭频道,频道踢人等。

查询在线频道列表

这个API用于分页查询app内所有正在进行中的频道列表。

请求

GET /channel/list?page=1&pageSize=100
Host: api.pano.video
Content-Type: application/json
Authorization: PanoSign <PanoSign>
Tracking-Id: ef9b2acc8e1f4d598090eb6d9cbe8596

请求参数说明:

  • page - 查询的页码,默认值为1。
  • pageSize - 每个页面的频道数目,默认值为100,最大值为500。

响应

状态码说明
200请求成功处理
400请求格式错误
401认证错误
500服务器内部错误

响应示例

200 OK
{
    "page": 1,                   // int,当前页码
    "pageSize": 100,             // int,页面大小
    "total": 5,                  // int,总频道数目
    "channels": [
        "HelloPano Channel1",    // string,频道ID
        "HelloPano Channel2",
        "HelloPano Channel3",
        "HelloPano Channel4",
        "HelloPano Channel5"
    ]
}

查询在线频道详情

这个API只能查询正在进行中的频道详情,如果要查询已经结束的频道详情,请使用查询通话详情API。

请求

POST /channel/info
Host: api.pano.video
Content-Type: application/json
Authorization: PanoSign <PanoSign>
Tracking-Id: ef9b2acc8e1f4d598090eb6d9cbe8596

{
  "channelId":"HelloPano"                // string, 必填, 频道ID
}

响应

状态码说明
200请求成功处理
400请求格式错误
401认证错误
404频道不存在
500服务器内部错误

响应示例

200 OK
{
  "channelKey": "96172915556352512",                // string, 当前通话全局唯一key
  "mode": 1,                                        // int, 频道模式, 0表示1对1, 1表示多人会议
  "liveStreamCnt": 0,                               // int, 推流的路数, 0表示没有开启推流
  "recordCnt": 0,                                   // int, 录制的文件数量,0表示没有开启云端录制
  "elapsedTime": 3600,                             // uint32, 频道已进行时长, 单位s
  "users": [
    {
      "userId": "1",                                // string, 用户Id
      "name": "user name1",                         // string, 用户名
      "joinTime": "2019-09-09T20:18:25.384Z",       // string, 用户加入时间, GMT时间
    },
    {
      "userId": "2",                                // string, 用户Id
      "name": "user name2",                         // string, 用户名
      "joinTime": "2019-09-09T20:30:25.384Z",       // string, 用户加入时间, GMT时间
    },
  ],
  "createTime": "2019-09-09T20:18:25.384Z",         // string, 频道开始时间, GMT时间
}

关闭频道

请求

POST /channel/close
Host: api.pano.video
Content-Type: application/json
Authorization: PanoSign <PanoSign>
Tracking-Id: ef9b2acc8e1f4d598090eb6d9cbe8596

{
  "channelId":"HelloPano"                // string, 必填, 频道ID
}

响应

状态码说明
200请求成功处理
400请求格式错误
401认证错误
404频道不存在
500服务器内部错误

频道踢人

请求

POST /channel/kick
Host: api.pano.video
Content-Type: application/json
Authorization: PanoSign <PanoSign>
Tracking-Id: ef9b2acc8e1f4d598090eb6d9cbe8596

{
  "channelId":"HelloPano",               // string,      必填, 频道ID
  "kickList": ["1","2"]                  // string list, 必填, 用户ID列表
}

响应

状态码说明
200请求成功处理
400请求格式错误
401认证错误
404频道/用户不存在
500服务器内部错误

查询通话详情

请求

POST /channel/data
Host: api.pano.video
Content-Type: application/json
Authorization: PanoSign <PanoSign>
Tracking-Id: ef9b2acc8e1f4d598090eb6d9cbe8596

{
  "channelId":"HelloPano",                 // string, 频道ID,与channelKey有一个必填
  "channelKey":"56789012345"               // string, 通话唯一标识,与channelId有一个必填
}

此API只能查询最近7天的通话详情,请在通话结束后7天内查询。

只有已经结束的通话可以使用此API查询,查询未结束的通话详情请使用查询在线频道详情API

  • channelId - 同一个channelId可能在不同时间段产生了多条通话记录,当有多条记录时,此API将会返回所有记录,如果超过50条记录,则仅返回最近的50条记录。为了避免出现相同channelId对应多条通话记录的情况,可以在生成Token/加入频道时使用全局唯一的channelId。
  • channelKey - Pano会给每一次通话分配一个全局唯一的key,传递了channelKey将返回唯一一条通话详情。
  • 如果同时传递,则仅匹配channelKey,忽略channelId。

响应

状态码说明
200请求成功处理
400请求格式错误
401认证错误
404频道不存在
500服务器内部错误

响应示例

200 OK
[
  {
    "channelId": "HelloPano",
    "channelKey": "56789012345",         // 全局唯一key
    "startTime": "1585461203",           // 会议开始时间,Unix时间戳,单位:秒
    "endTime": "1585461223",             // 会议结束时间,Unix时间戳,单位:秒
    "duration": "20",                    // 会议时长,单位:秒
    "participants": 3,                   // 参会人数
    "attendees": [
      {
        "userId": "5",
        "joinTime": "1585461203",        // 首次入会时间,Unix时间戳,单位:秒
        "leaveTime": "1585461206",       // 最后离会时间,Unix时间戳,单位:秒
        "duration": "3"                  // 在会议中的总时长,单位:秒
      },
      {
        "userId": "6",
        "joinTime": "1585461203",
        "leaveTime": "1585461211",
        "duration": "8"
      },
      {
        "userId": "7",
        "joinTime": "1585461203",
        "leaveTime": "1585461223",
        "duration": "20"
      }
    ],
    "recordings": [
      {
        "streamId": 1,
        "fileKey": "67890123456"
      },
      {
        "streamId": 2,
        "fileKey": "67890123457"
      }
    ]
  },
  ... // 如果channelId对应了多条记录,则返回多条
]

响应数据说明:

  • channelKey - Pano会给每一次通话分配一个全局唯一的key,同一个channelId在不同时间段产生了多条通话记录时,每条记录都有一个全局唯一的channelKey
  • attendees/duration - 用户在会议中的总时长,用户可能会进出会议多次,因此在会议中的总时长可能不等于leaveTime减去joinTime
  • recordings - 录制文件列表
    • 如果查询时录制文件还没有全部生成,则仅返回已生成的录制文件信息
    • 录制文件的生成取决于资源的空闲程度,通常在几分钟至2小时可以生成录制文件
    • Pano仅要求同一个通话中正在进行的录制streamId唯一,如果你使用某个streamId开启录制后,然后结束录制,然后使用相同的streamId再次开启录制(可能录制不同的用户,使用不同的布局等),那么对于Pano而言这是两个不同的录制文件,在响应里将会返回2条记录,两条记录里的streamId相同fileKey不同,fileKey由Pano分配,全局唯一
Last updated on 2022/1/25
← 生成Token云端录制 →
  • 查询在线频道列表
    • 请求
    • 响应
  • 查询在线频道详情
    • 请求
    • 响应
  • 关闭频道
    • 请求
    • 响应
  • 频道踢人
    • 请求
    • 响应
  • 查询通话详情
    • 请求
    • 响应
浙ICP备20002645号 ©2019-2022 Pano拍乐云