Appearance
调试模式
传了客户资料、工作台却没显示时,用调试模式在客服页里直接查:传了什么、到哪一步、被谁丢了、该怎么改。
怎么打开
在初始化配置的 extraQuery 里加一条 hcdebug:
kotlin
val config = HecongChatConfig(channelId = "你的渠道 ID").apply {
extraQuery["hcdebug"] = "1"
}swift
let config = HecongChatConfig(channelId: "你的渠道 ID")
config.extraQuery["hcdebug"] = "1"只有 1 和 true 算打开,填别的值等于没开。
这条配置不挑 SDK 版本,也不用等新版本,改完重新运行就能看到。查完把这行删掉再发版,否则每位客户都能看到面板。
调试面板在客服页内部,所以要在真机或模拟器里打开客服才看得到。
两个容易误解的地方
开关只在页面加载时判定。 聊天窗打开之后再改参数没有用,因为面板要记的正是「刚打开时收到了什么」。改完重新打开一次页面。
面板说「资料记下了,工作台还看不到」不是出错。 客户还没有档案时,资料会先挂着,等客户发出第一条消息再自动补写进档案。这是设计如此,你什么都不用改。
面板长什么样
调试模式打开后,聊天窗标题栏下面多一条状态条,点开是调试面板。它嵌在聊天窗里,不遮挡输入框。
状态条一眼给结论:
| 颜色 | 文案 | 意思 |
|---|---|---|
| 灰 | 还没传入客户信息 | 这次打开没带任何客户资料 |
| 红 | 资料没送出去 | 带了资料但没有会员 ID,资料没地方存,已被丢弃 |
| 红 | 有自定义字段没被收下 | 字段名没在工作台定义过 |
| 红 | 会员 ID 被拒绝了 | 用了 guest、test、0 这类占位值,换成你系统里真实的用户编号 |
| 黄 | 资料正在送出… | 已经发出,还没等到结果 |
| 黄 | 资料记下了,工作台还看不到 | 客户还没有档案,等他发第一条消息就会补写 |
| 绿 | 资料已写入,工作台能看到了 | 正常 |
| 绿 | 会员身份已送达 | 只传了会员 ID、没带其他资料时的正常状态 |
面板里有两个标签页。
概览:你传了什么(会员 ID、姓名、手机、邮箱、自定义字段逐项列出,每项标明去向)、实际写进去几项、连接状态、现在识别成谁。
去向分三种:
- 没传 —— 压根没带这一项
- 没送出 —— 带了,但客户端就丢了,请求没发出去
- 没收下 —— 发出去了,服务器没收(多半是字段没在工作台定义)
没带的姓名、手机、邮箱不会单独列一行,只有会员 ID 缺失时会明确标出来。
记录:你调了哪些命令、订阅了哪些事件、发生了哪些事件,都带时间。最多留最近 50 条。
查不出来的时候
面板底部的 复制诊断信息 会把上面这些整理成一段文字,可以直接发给合从客服。
里面不含合从的内部信息,也不含任何凭据。但它包含你自己传进去的客户资料明文,姓名、手机、邮箱、会员 ID 都在里面。转发前自己判断一下,必要时先把这些值抹掉。
访客会不会看到
不会,除非他打开的正是带调试参数的那个地址。不带参数时面板的代码根本不会下载。
它也不影响正常接待:开着的时候聊天功能一行没变,只是消息区顶部被状态条占掉一条。
调试参数没有密码,谁拿到带参数的地址谁就能看到面板。所以带参数的链接不要对外发,自己测完就换回不带参数的地址。
下一步
- 传客户资料与退出登录 —— 资料怎么传、什么时候调
- 接入问题排查 —— 其他接入问题