将 RTC 控制台中的监控台快速嵌入你的控制台系统。
支持为不同的员工设置不同监控台内嵌页面的只读权限。
可内嵌页面包括诊断工具、房间监控、实时监控、告警通知、质量概览、运营数据和用户反馈。
如果你需要对权限进行更精细化管理,可以根据 控制台介绍 为子用户开启最小权限。
用户访问控制台数据时,通过安全令牌服务登录,火山引擎鉴权通过后,才会返回相应数据。安全令牌服务可以生成免密码登录链接,因此,你需要在服务器上对用户进行鉴权,识别该用户对应火山控制台的角色和所需访问权限,用于获取相应的角色密钥。
AK 是 AccessKey 的缩写, SK 是 SecretAccessKey 的缩写。
调用 AssumeRole 传入用户对应的控制台角色,获取临时 AK、SK 和 SessionToken。
调用 getSigninTokenWithSTS 传入 AK、SK 和 SessionToken,获取 SigninToken。
调用 loginWithSigninToken 传入 SigninToken,获取免密码登录链接。
参考火山引擎提供的 OpenAPI SDK 实现上述步骤。
URL 的结构为: console.volc-embed.com/rtc/callQualityRTC/${pageName}?${query}
诊断工具:console.volc-embed.com/rtc/callQualityRTC/diagnosis
房间详情:console.volc-embed.com/rtc/callQualityRTC/diagnosis/roomDetail
用户详情:console.volc-embed.com/rtc/callQualityRTC/diagnosis/userDetail
房间监控:console.volc-embed.com/rtc/callQualityRTC/surveillance
console.volc-embed.com/rtc/callQualityRTC/surveillance/roomDetail
实时监控:console.volc-embed.com/rtc/callQualityRTC/monitor
告警通知:console.volc-embed.com/rtc/callQualityRTC/alarm
运营数据:console.volc-embed.com/rtc/callQualityRTC/operation
用户反馈:console.volc-embed.com/rtc/callQualityRTC/feedback
你可以将以下搜索条件拼接到 URL 中,向 RTC 控制台请求直接展示搜索结果页面。
Key | 描述 |
---|---|
appID | 应用 ID |
bid | 业务标签 |
roomId | 房间 ID,诊断工具和房间监控页面展示指定 roomId 数据 |
以用户诊断工具为例,拼接后的 URL 为:console.volc-embed.com/rtc/callQualityRTC/diagnosis?bid=***&appId=***
设置左侧菜单栏是否展示。
Key | Value |
---|---|
hidemenu |
|
以用户反馈页面为例,拼接后的 URL 为:console.volc-embed.com/rtc/callQualityRTC/feedback?hidemenu=true
将上一步骤中拼接好的 URL 通过 iframe 标签插入到内部控制台系统页面中。
<iframe src='https://[console.volc-embed.com](http://console.volc-embed.com)/rtc/callQualityRTC'></iframe>
以 node 为例
const {Service} = require('@volcengine/openapi'); const axios= require("axios"); class StsService extends Service { constructor(props) { super({ ...props, defaultVersion: "2018-01-01", serviceName: "sts", }); } } async function main() { const stsService = new StsService() stsService.setAccessKeyId('xxx'); stsService.setSecretKey('yy') stsService.setHost('volcengineapi.byted.org') // 调用 AssumeRole 获取 AK、SK 和 SessionToken const assumeRole = stsService.createAPI('AssumeRole', { method: 'GET', }); const token = await assumeRole({ RoleTrn: 'trn:iam::${accountId}:role/${角色名}', RoleSessionName: 'embedrtcconsole' }) const { AccessKeyId, SecretAccessKey, SessionToken } = token.Result.Credentials; // 根据临时安全令牌获取 SigninToken const signinResp = await axios.post('https://console.volc-embed.com/api/passport/login/getSigninTokenWithSTS', { "accessKeyId": AccessKeyId, "secretAccessKey": SecretAccessKey, "sessionToken": SessionToken }) const signinToken = signinResp.data.Result.SigninToken; // 根据 SigninToken 生成免密登录连接,打开内嵌诊断工具页面 const url = `https://console.volc-embed.com/api/passport/login/loginWithSigninToken?signinToken=${signinToken}&redirectURI=${encodeURIComponent('https://console.volc-embed.com/rtc/callQualityRTC')}` // 成功登录一次后可以在临时 Token 的有效期内通过 URL 访问内嵌控制台其他页面 const diagnosisUrl = `https://[console.volc-embed.com](http://console.volc-embed.com)/rtc/callQualityRTC/diagnosis` console.log(url) } main();
Q: 调用 AssumeRole 获取临时 AK、SK 和 SessionToken 时报错
A: 根据返回的错误提示解决。
You have no permission for this action.
Root user is forbidden to assume role.
确保使用子用户的 AK、SK 调用本接口。