跳转到内容

反馈人身份

我们推荐您在配置Web SDK时,将** 反馈人身份 **一并进行配置,这样您就可以在提交时看到反馈人信息。避免出现Debug时无法找到反馈人的情况。

SDK 跑在访客的浏览器里,读不到你服务端的登录态;BugCapturer 也刻意不读你站点的 Cookie 去「猜」身份。所以身份要由页面显式传给 SDK——按你的页面类型二选一。

方式一:服务端渲染页面(模板里直接填)

Section titled “方式一:服务端渲染页面(模板里直接填)”

出 HTML 时服务端就知道用户是谁,在接入代码里填上即可(${...} 换成你模板引擎的写法):

<script>
window.BugCapturerConfig = {
key: "bcpk_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx",
reporter: {
uid: "${user.id}",
name: "${user.name}",
email: "${user.email}"
}
};
</script>
<script src="https://api.bugcapturer.com/sdk/bugcapturer.js" async></script>

方式二:SPA / 前端渲染页面(登录后调用)

Section titled “方式二:SPA / 前端渲染页面(登录后调用)”

用户信息在前端状态里,登录成功后调用 identify():

function identifyReporter(user) {
if (!user) return;
var apply = function () {
BugCapturer.identify({ uid: user.id, name: user.name, email: user.email });
};
if (window.BugCapturer && BugCapturer.ready) BugCapturer.ready(apply); // SDK 已加载
else window.addEventListener('bugcapturer:ready', apply, { once: true }); // SDK 还没加载完
}
// 登录成功后调用;切换账号后再调一次(后调用的覆盖前一次)
identifyReporter(currentUser);

React / Vue 里把这一句放进登录后的钩子(useEffect / 路由守卫)就行,帮助函数本身不用改。

字段上限:uid ≤ 64、name ≤ 100、email ≤ 254 字符;三项至少填一项才算已识别,超长或格式不合法的值会被自动忽略、不会卡住提交。三项都留空即匿名提交——此时可在项目设置里开启「联系方式必填」,让匿名访客留下邮箱或其他联系方式。

  1. 打开已接入的页面并登录,点悬浮球:编辑器顶部应显示「✓ 以 xxx 身份提交」,而不是「匿名提交」
  2. 提交一条测试报告,到「反馈记录」或绑定的多维表格里确认「反馈人」「反馈人邮箱」两列已填充(列名即这两列;用自建应用方式接入表格时会自动创建)

如果始终显示匿名,依次检查:① identify() 是否在登录之后调用;② 浏览器控制台执行 window.BugCapturer 是否有返回;③ 传入的值是否是非空字符串;④ 表格里是否有上面那两列(缺列不会报错,只是不显示)。更多见 SDK 与插件排错。

  • 定位到人,不用猜 —— 报告直接带着提出人的姓名与邮箱,排查时可以回问具体细节,不用在群里挨个问「这是谁提的」
  • 少一步操作,提交率更高 —— 身份已知时表单不再要求填联系方式,反馈人点一下就能提交
  • 多人 / 多账号环境可追溯 —— 内部系统、SaaS 后台这类多人登录的场景,报告能准确归到具体账号
  • 插件汇入同样受益 —— 测试者用插件在已接入的页面上提交时,插件会读取页面暴露的身份作为「站点反馈人」一起带上;不希望暴露的页面可设 exposeReporter: false,报告照常送达,只是不带这层身份