拍乐云Pano

拍乐云Pano

  • 文档中心
  • 下载中心

›RESTful API

新手入门

  • 简介
  • 名词解释
  • 帐号注册指南
  • 创建第一个应用

规则说明

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

场景方案

    教育行业

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

快速接入

  • Android
  • Web

RESTful API

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

SDK API

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

    • PanoRtc 参考
    • RtcEngine
    • RtcWhiteboard
    • Constants

帮助

  • 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

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

查询在线频道详情

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

请求:

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

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

响应:

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

状态码 200

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":"Hello Pano"                // 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":"Hello Pano",               // 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":"Hello Pano",                 // string, 频道ID,与channelKey有一个必填
  "channelKey":"57489728467"                // string, 通话唯一标识,与channelId有一个必填
}

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

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

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

响应:

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

状态码 200

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

响应数据说明:

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