5.3 用户信息和参数设置
使用 SDK 提供的 UI 集成,需要在启动会话界面之前进行用户信息和参数配置。配置项如下:
V5ClientConfig config = V5ClientConfig.getInstance(MainActivity.this);
// V5客服系统客户端配置(以下值均为默认值,仅作示例,不需修改可不必设置)
// V5ClientConfig.USE_HTTPS = true; // 使用加密连接,默认true
// V5ClientConfig.AUTO_RETRY_ONERROR = true; // 链接错误时是否自动重试链接,默认true,否则弹出提示框选择是否重试
// V5ClientConfig.SOCKET_TIMEOUT = 20000; // 设置连接超时20s
// config.setShowLog(true); // 显示日志,默认为true
// config.setLogLevel(V5ClientConfig.LOG_LV_VERBOSE); // 显示日志级别,默认为全部显示
/*** 客户信息设置 ***/
// 【建议】设置用户昵称
config.setNickname("android_sdk_test");
// 设置用户性别: 0-未知 1-男 2-女
config.setGender(1);
// 【建议】设置用户头像URL
config.setAvatar("http://debugimg-10013434.image.myqcloud.com/fe1382d100019cfb572b1934af3d2c04/thumbnail");
/**
*【建议】设置用户OpenId,以识别不同登录用户,不设置则默认由SDK生成,替代v1.2.0之前的uid,
* openId将透传到座席端(长度32字节以内,建议使用含字母数字和下划线的字符串,尽量不用特殊字符,若含特殊字符系统会进行URL encode处理,影响最终长度和座席端获得的结果)
* 若您是旧版本SDK用户,只是想升级,为兼容旧版,避免客户信息改变可继续使用config.setUid,可不用openId
*/
config.setOpenId("android_sdk_test");
//config.setUid(uid); //【弃用】请使用setOpenId替代
// 设置用户VIP等级(0-5)
config.setVip(0);
// 使用消息推送时需设置device_token:集成第三方推送(腾讯信鸽、百度云推)或自定义推送地址时设置此参数以在离开会话界面时接收推送消息
config.setDeviceToken(XGPushConfig.getToken(getApplicationContext()));
// [1.3.0新增]设置V5系统内置的客户基本信息,区别于setUserInfo,这是V5系统内置字段
JSONObject baseInfo = new JSONObject();
try {
baseInfo.put("country", "中国");
baseInfo.put("province", "广东");
baseInfo.put("city", "深圳");
baseInfo.put("language", "zh-cn");
// nickname,gender,avatar,vip也可在此设置
} catch (JSONException e) {
e.printStackTrace();
}
config.setBaseInfo(baseInfo);
// 客户信息键值对,下面为示例(JSONObject)
JSONObject customContent = new JSONObject();
try {
customContent.put("用户名", "V5KF");
customContent.put("用户级别", "VIP");
customContent.put("用户积分", "3000");
customContent.put("浏览商品", "衬衣");
} catch (JSONException e) {
e.printStackTrace();
}
// 【新】设置客户信息(自定义JSONObjectjian键值对,开启会话前设置,替代之前通过`setUserWillSendMessageListener`在消息中携带信息的方式,此方式更加安全便捷)
config.setUserInfo(customContent);
当 nickname
、openId
、avatar
、device_token
等配置项配置完,下次需要修改(如App内切换了登录账号,修改了客户昵称或头像时)并向座席更新时需要在开启会话前调用 V5ClientConfig.getInstance(context).shouldUpdateUserInfo()
,这样才会向服务端更新这几个配置项。同样若想更新站点信息,需要在onChatActivityConnect
中调用 V5ClientAgent.getInstance().updateSiteInfo()
。客户信息、站点信息(包含机器人信息和转人工开场白等V5后台可设置的信息)的更新存在缓存策略,系统每隔7天更新,一般无需处理,需要即时更新时方才调用此处接口。
指定人工客服或分组设置方式:
/*
* 连接建立后才可以调用接口,以下是两种转人工情况示例(在onChatActivityConnect回调中执行,参考:5.5 会话界面回调)
*/
// 【转】指定人工客服(调用时立即转),参数: 客服组id,客服id (以下数字仅作为示例,具体ID请前往V5后台查看客服信息)
V5ClientAgent.getInstance().transferHumanService(0, 132916);
// 【指定人工客服】点击转人工按钮或者问题触发转人工时会转到指定人工,参数"0 132916"中两个数字先后对应需要转的客服组ID和客服ID
V5ClientAgent.getInstance().sendMessage(new V5ControlMessage(4, 2, "0 114052"), null);