Appearance
访客 SDK 总览
99 客服访客 SDK 用于在网站、App 或跨端应用中接入访客聊天能力。普通接入直接打开 SDK 内置聊天页;需要自定义界面时,使用各平台的 Core API 实现消息、实时同步和上传。
选择接入方式
| 平台 | 适用场景 |
|---|---|
| Web / H5 | 网站悬浮入口、嵌入式咨询页或独立窗口。 |
| Android | 原生 Android App 的完整聊天页或自定义界面。 |
| iOS | 原生 iOS App 的完整聊天页或自定义界面。 |
| uni-app | App 与小程序项目。 |
| Flutter | Flutter App。 |
| React Native | React Native / Expo Development Client 项目。 |
统一生命周期
除 Web Widget 外,各原生与跨端 SDK 使用相同的生命周期:
text
Visitor.configure(config, auth, visitor?)
↓
Visitor.openChat(options)
↓
SDK 按需取得 visitor_token、分配客服、加载数据并连接实时服务
↓
Visitor.logout()configure只保存本地配置,不会立即请求网络。- 首个业务请求、Token 即将过期或服务端拒绝 Token 时,SDK 调用宿主提供的
tokenProvider。 logout清除当前 Token、会话和实时连接,不向服务端发起退出请求。
身份与安全边界
SDK 有两种认证方式:
| 方式 | 适用环境 | 说明 |
|---|---|---|
VisitorAuth.tokenProvider(...) | 正式生产 | 宿主 App 向自己的服务端取得短期 visitor_token。推荐且必须用于公开发布的应用。 |
VisitorAuth.apiKey(apiKey, bid, uid) | 本地联调、内部可信环境 | 在客户端本地签名 Token;会把商户密钥置入安装包,不得用于公开应用。 |
完整规则和服务端签发格式见认证与 Token。
平台一致性
各 SDK 保持相同的身份、路由、字段和实时语义:
- 所有 SDK 业务请求使用
Authorization: Bearer <visitor_token>调用/sdk/visitor/*。 - 身份由 Token 中的
bid、uid确认,业务请求不重复传递这两个字段。 groupId对应 HTTP 字段group_id;channel是客服可见的业务来源标签,不是实时订阅频道。- 消息按
mid去重;断线后重新订阅,并通过消息历史补齐。 contexts不传表示保留已有咨询上下文,显式传空数组表示清空。
下一步
- 阅读认证与 Token,准备正式环境的 Token Provider。
- 选择目标平台完成安装与
configure。 - 使用
openChat()快速验证会话、客服分配和实时消息。