查看与分享录制
使用仪表板进行内部调查,或在获得授权的查看者需要托管播放器 或截图时,签发一个短期有效的预签名 URL。私有 API 密钥拥有完整的读写权限。它只能放在受信服务器上。 绝不要在浏览器代码中暴露私有 API 密钥。
在仪表板中查看录制
打开 rrweb Cloud 仪表板中的录制, 选择一个录制,并使用内置的时间线和播放控件;对于已经拥有 仪表板访问权限的团队成员来说,这是最简单的选择。
对于应用自有的查看者,请继续使用受限链接,而不是要求查看者 输入 API 密钥。
创建受限分享链接
在受信服务器上,使用私有 API 密钥并附带 includeSignedUrls=true 请求录制描述符,然后只将获得授权的查看者所需的签名链接返回给它;预签名 URL 是限定到单个资源的持有者凭据,会在 expires 中编码的时间之后过期。
当签名可用时,获取录制 操作会返回以下结构:
{
"recordingId": "550e8400-e29b-41d4-a716-446655440000",
"metadata": {},
"links": {
"self": "/recordings/550e8400-e29b-41d4-a716-446655440000",
"events": "/recordings/550e8400-e29b-41d4-a716-446655440000/events",
"player": "/recordings/550e8400-e29b-41d4-a716-446655440000/player",
"screenshot": "/recordings/550e8400-e29b-41d4-a716-446655440000/screenshot",
"eventsSigned": "/recordings/550e8400-e29b-41d4-a716-446655440000/events?tenantId=...&expires=...&keyId=...&signature=...",
"playerSigned": "/recordings/550e8400-e29b-41d4-a716-446655440000/player.html?tenantId=...&expires=...&keyId=...&signature=...",
"screenshotPngSigned": "/recordings/550e8400-e29b-41d4-a716-446655440000/screenshot.png?tenantId=...&expires=...&keyId=...&signature=..."
}
}curl --get \
--url 'https://api.rrweb.com/recordings/550e8400-e29b-41d4-a716-446655440000' \
--header 'Authorization: Bearer secret_key_rr_your_key' \
--header 'Accept: application/json' \
--data-urlencode 'includeSignedUrls=true'在链接有效期内,请保护它不被日志和分析工具记录。 当前返回的 playerSigned 链接指向 /player.html, screenshotPngSigned 指向 /screenshot.png。
嵌入托管播放器
从你的应用服务器为嵌入提供已授权的 playerSigned 值,然后使用 URL API 添加 mode、controls、autoplay 和 time 等显示选项,再将其设置为 iframe 的 src。
获取录制 播放器操作记录了规范端点。
const playerUrl = new URL(playerSigned, 'https://api.rrweb.com');
playerUrl.searchParams.set('mode', 'minimal');
playerUrl.searchParams.set('controls', 'true');
playerUrl.searchParams.set('autoplay', 'false');
document.querySelector('#replay-frame').src = playerUrl.toString();<iframe
id="replay-frame"
title="Session replay"
allow="fullscreen"
referrerpolicy="no-referrer"
></iframe>/recordings/{recordingId}/player.html 端点接受:
controls:true或false;autoplay:true或false;mode:standard、minimal或capture;speed:从0.25到4;以及time:offset:0、offset:-5000、percent:50或epoch:1702900000000。
签名保护请求方法、资源路径、租户和过期时间。这些播放器选项 不受完整性保护,因此如果查看者不得更改它们,请在你自己的 应用中进行约束。
捕获录制截图
在受信服务器上使用私有 API 密钥请求 /screenshot.png、/screenshot.jpeg 或 /screenshot.webp,并选择 time、width、height 和 quality 来控制捕获的画面。
获取录制截图 操作支持这些格式。受信服务器 可以请求任意格式,并将生成的图片代理给获得授权的查看者:
curl --get \
--url 'https://api.rrweb.com/recordings/550e8400-e29b-41d4-a716-446655440000/screenshot.png?time=percent%3A50&width=1280&height=720' \
--header 'Authorization: Bearer secret_key_rr_your_key' \
--header 'Accept: image/png' \
--output recording.png不带扩展名时,发送 Accept: image/png、image/jpeg 或 image/webp。扩展名优先于请求头。截图选项包括:
time,使用与播放器相同的 offset、percent 或 epoch 形式;width和height,各为 1 到 4096 像素;以及quality,JPEG 和 WebP 使用的 1 到 100 的整数。PNG 会忽略quality。
录制详情响应会生成一个已签名的 PNG 链接。需要这些格式时, 请通过受信服务器请求 JPEG 或 WebP。
访问故障排查
401通常表示缺少身份验证,或凭据缺少录制事件的读取 权限。- 签名链接返回
403通常表示其签名无效或已过期。 404表示未找到录制或事件流。422截图响应表示请求的time超出了 录制范围。
完整的凭据模型参见认证。