# 打开客服会话
当前SDK提供两种方式接入客服会话功能,抖音&抖音Lite内调用 sdkInstance.openCustomerServiceConversation(options)
接口,其他宿主内使用 sdkInstance.createContactButton
接口,可通过字段 sdkInstance.system.appName
去区分宿主环境。
# 抖音或抖音Lite
# 接口说明
用于打开客服会话,仅支持抖音&抖音Lite;当前支持的客服类型包括:
- 小6客服:使用前需开通并配置相关客服账号,关于其能力介绍、接入指南等更多内容请阅读小6客服消息能力(全app通用) (opens new window)文档说明;
- 抖音IM客服(仅支持抖音):使用前需开通并配置相关客服抖音账号,关于其功能简介、配置原理及客服工具使用等更多内容请阅读抖音IM客服 (opens new window)文档说明。
sdkInstance.openCustomerServiceConversation(options);
最低基础库版本要求
若用户客户端基础库版本低于 2.66.1
,调用 sdkInstance.openCustomerServiceConversation(options)
接口将中断用户当前操作并弹出升级提示,不会报错!
# 参数说明
参数说明如下表所示:
选项 | 类型 | 必填 | 默认值 | 说明 |
---|---|---|---|---|
type | number | 否 | 1 | 客服类型:
|
sessionFrom | string | 否 | -- | 保留字段,暂时可以不填 |
success | function | 否 | -- | 打开成功的回调函数 |
fail | function | 否 | -- | 打开失败的回调函数,返回错误信息 |
complete | function | 否 | -- | 打开完成的回调函数,成功或失败均会调用 |
# 返回值说明
WARNING
返回值格式:JSON
格式。
选项 | 类型 | 说明 |
---|---|---|
code | number | 响应状态码,为 0 时表示打开成功,其他非 0 状态码均表示打开失败 |
data | object / null | 打开失败时返回 null |
message | string | 打开成功或失败时的相应描述信息 |
# 示例代码
注:示例代码中的参数或选项均为演示数据,仅供参考,谢谢!
// 若用户客户端基础库版本低于 2.66.1,调用此接口将中断用户当前操作并弹出升级提示,不会报错!
sdkInstance.openCustomerServiceConversation({
type: 1,
success: function(response) {
console.log(response);
},
fail: function(error) {
sdkInstance.modal.message(error.message);
},
complete: function(result) {
// do something here...
}
});
# 其他宿主
# 接口说明
用于在游戏内创建小6客服按钮,并在点击时跳转至小6客服页面,全app通用;管理员可登录《抖音小6客服》 (opens new window)后台查看或回复用户咨询的内容;使用前需开通并配置相关客服账号,关于其能力介绍、接入指南等更多内容请阅读小6客服消息能力(全app通用) (opens new window)文档说明。
sdkInstance.createContactButton(options);
最低基础库版本要求
若用户客户端基础库版本低于 1.55.0
,调用 sdkInstance.createContactButton(options)
接口将返回 undefined
,并在正式版环境下于控制台输出错误提示(非正式版环境下,以弹窗形式展示),需要游戏研发对返回值做兼容处理!
# 参数说明
参数说明如下表所示:
选项 | 类型 | 必填 | 默认值 | 说明 |
---|---|---|---|---|
type | string | 是 | text | 按钮类型
|
text | string | 否 | -- | 文本按钮的文本,仅当 type 为 text 时有效 |
image | string | 否 | -- | 图片按钮的背景图片,仅当 type 为 image 时有效 |
style | object | 是 | -- | 按钮样式 |
style.top | number | 是 | 0 | 按钮左上角纵坐标 |
style.left | number | 是 | 0 | 按钮左上角横坐标 |
style.width | number | 是 | 100 | 按钮宽度 |
style.height | number | 是 | 32 | 按钮高度 |
style.borderWidth | number | 否 | 0 | 按钮边框宽度 |
style.borderRadius | number | 否 | 0 | 按钮边框圆角 |
style.borderColor | string | 否 | #07c160 | 按钮边框颜色,格式为 6 位 16 进制数 |
style.backgroundColor | string | 否 | #07c160 | 按钮背景颜色,格式为 6 位 16 进制数 |
style.textColor | string | 否 | #ffffff | 按钮文本颜色,格式为 6 位 16 进制数 |
style.fontSize | number | 否 | 12 | 按钮文本字号 |
style.textAlign | string | 否 | center | 按钮文本水平居中方式
|
style.lineHeight | number | 否 | 32 | 按钮文本行高 |
# 返回值说明
调用 sdkInstance.createContactButton(options)
接口,将返回一个用于打开小6客服页面的按钮实例。具体实例方法如下表所示:
方法 | 类型 | 说明 |
---|---|---|
show | function | 用于显示小6客服按钮 |
hide | function | 用于隐藏小6客服按钮 |
destroy | function | 用于销毁小6客服按钮 |
onTap | function | 用于绑定小6客服按钮的点击事件回调函数 |
offTap | function | 用于注销小6客服按钮的点击事件回调函数 |
# 特别说明
由于抖音的策略限制,在非抖音&抖音Lite宿主环境下,打开小6客服页面的动作无法由游戏原生按钮触发,必须使用上述API创建指定按钮,并在点击时自动跳转。但往往游戏拥有自己的视觉设计体系,而该API创建的按钮并不符合美术需求,遇到这种情况可通过以下两种方式解决:
- 设置
type
为text
时,将按钮文本、边框颜色及背景颜色均置空,以便创建一个视觉透明的按钮,并利用宽高及横纵坐标将其覆盖在小游戏原生按钮上;(经测试暂不可行,可尝试使用第二种方案) - 设置
type
为image
时,将小游戏的按钮图片素材作为背景图片。
# 示例代码
注:示例代码中的参数或选项均为演示数据,仅供参考,谢谢!
// 创建小6客服按钮
const contactButton = sdkInstance.createContactButton({
type: "text",
text: "联系客服",
style: {
top: 376,
left: 40,
width: 100,
height: 32,
backgroundColor: "#07c160",
borderWidth: 0,
borderColor: "#07c160",
borderRadius: 0,
textColor: "#ffffff",
fontSize: 12,
textAlign: "center",
lineHeight: 32
}
});
// 先判断 contactButton 是否存在再使用
// 因为当用户的客户端基础库版本低于 1.55.0 时,调用 sdkInstance.createContactButton 接口将返回 undefined
if (contactButton) {
// 显示小6客服按钮
contactButton.show();
// 隐藏小6客服按钮
contactButton.hide();
// 销毁小6客服按钮
contactButton.destroy();
// 绑定或注销小6客服按钮的点击事件回调函数
const listener = function(response) {
console.log(response.code); // 事件响应状态码,为0时表示打开小6客服页面成功,其他非0状态码表示打开失败
console.log(response.message); // 打开成功或失败时的相应描述信息
};
contactButton.onTap(listener);
contactButton.offTap(listener);
}
← 广告 游戏对局回放(选接) →