Skip to content

Cheese对接 ​

准备工作 ​

下载示例工程、下载 SDK

百度网盘

官方网盘

目录 ​

  1. 快速对接
  2. 初始化配置
  3. 用户认证API
  4. 程序相关API
  5. 配置相关API
  6. 远程数据相关API
  7. 设备管理相关API
  8. 脚本错误上报API
  9. 自动心跳机制

快速对接 ​

1. 引入SDK ​

javascript
const kauth = require('kauth.js');

2. 初始化配置 ​

javascript
// 初始化SDK配置
const platformType = "cheese_android"; // 平台类型
const result = kauth.initConfig(
    "https://api.kauth.cn",  // API域名
    "your_program_id",       // 程序ID
    "your_program_secret",    // 程序密钥
    "your_public_key"        // 商户公钥
);

if (!result) {
    console.error("SDK初始化失败");
    return;
}

3. 获取设备ID ​

javascript
// 获取设备ID
const deviceId = kauth.getDeviceId();
console.log("设备ID:", deviceId);

4. 卡密登录 ​

javascript
// 卡密登录
const loginResult = kauth.kaLogin("your_ka_pwd", deviceId, platformType);
if (loginResult.isSuccess) {
    console.log("登录成功:", loginResult.data.nickName);
    
    // 启动自动心跳
    kauth.autoPong((failMsg) => {
        console.log("心跳失败:", failMsg);
        // 开发者可以在这里做操作,比如说关闭脚本
    }, 10); // 每10秒心跳一次
    
} else {
    console.error("登录失败:", loginResult.msg);
}

初始化配置 ​

initConfig(apiDomain, programId, programSecret, merchantPublicKey) ​

初始化SDK配置,这是使用SDK前必须调用的方法。

参数:

  • apiDomain (string): API域名,例如: "https://api.kauth.cn"
  • programId (string): 程序ID
  • programSecret (string): 程序密钥
  • merchantPublicKey (string): 商户公钥

返回值:

  • boolean: 初始化成功返回true,失败返回false

示例:

javascript
const result = kauth.initConfig(
    "https://api.kauth.cn",
    "1959821336266936321",
    "F77VzI7UWAElpWrz",
    "MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCIpy3ae27yDJOUd5rW/S6tUbAmt/AqJm+VPonT9WJn5VME4FkYJUwdBmIWpzANVQmU+7CA3wv5eVFIOW0xMv9EyoFWDRR24Jt/hgDsZQtUPMaZPivKWxx2S4n4SJWWrGdIRkdC3+fmxrEri1qYicq8PO7mDIrwPR2I0USoKKOFMwIDAQAB"
);

用户认证API ​

1. 获取设备ID ​

getDeviceId() ​

获取Kauth自动生成的设备ID,用于登录等操作。

返回值:

  • string: 设备ID

示例:

javascript
const deviceId = kauth.getDeviceId();
console.log("设备ID:", deviceId);

2. 卡密登录 ​

kaLogin(kaPwd, deviceId, platformType, captchaCode, captchaUuid) ​

使用卡密进行登录,支持次卡和时卡。

参数:

  • kaPwd (string): 卡密
  • deviceId (string): 设备ID
  • platformType (string): 平台类型,例如: "cheese_android"
  • captchaCode (string, 可选): 验证码
  • captchaUuid (string, 可选): 验证码UUID

返回值:

javascript
{
    msg: "到期时间:2025年12月10日15时14分00秒",
    code: 200,
    traceId: "2pztmiy8vbpmjkq",
    elapse: "163",
    respTime: "2025-12-09 15:14:00",
    isSuccess: true,
    data: {
        userId: "1998290015197954049",
        nickName: "卡密用户",
        token: "kp.638da49e8eb14270b948aae386a1b025",
        pongInterval: "120000"
    }
}

示例:

javascript
const loginResult = kauth.kaLogin("nfl4425f", deviceId, "cheese_android", "", "");
if (loginResult.isSuccess) {
    console.log("登录成功:", loginResult.data.nickName);
} else {
    console.error("登录失败:", loginResult.msg);
}

3. 用户密码登录 ​

pwdLogin(loginName, password, deviceId, captchaCode, captchaUuid) ​

使用用户名和密码进行登录。

参数:

  • loginName (string): 登录账号
  • password (string): 登录密码
  • deviceId (string): 设备ID
  • captchaCode (string, 可选): 验证码
  • captchaUuid (string, 可选): 验证码UUID

返回值: 与卡密登录相同的响应格式。

示例:

javascript
const loginResult = kauth.pwdLogin("test_account", "123456", deviceId, "", "");
if (loginResult.isSuccess) {
    console.log("登录成功:", loginResult.data.nickName);
} else {
    console.error("登录失败:", loginResult.msg);
}

4. 试用登录 ​

trialLogin(deviceId) ​

免登录试用登录,无需卡密即可体验。

参数:

  • deviceId (string): 设备ID

返回值: 与卡密登录相同的响应格式。

示例:

javascript
const loginResult = kauth.trialLogin(deviceId);
if (loginResult.isSuccess) {
    console.log("试用登录成功:", loginResult.data.nickName);
} else {
    console.error("试用登录失败:", loginResult.msg);
}

5. 获取图形验证码 ​

getCaptcha(uuid) ​

获取图形验证码,用于登录、注册、充值等操作。

参数:

  • uuid (string): 客户端生成的UUID,用于标识验证码

返回值:

javascript
{
    msg: "操作成功",
    code: 200,
    traceId: "2pztmiy97lo7N2b5",
    elapse: "216",
    respTime: "2025-12-09 15:23:33",
    isSuccess: true,
    data: {
        captchaBase64: "CNKTAAAAAElFTkSuQmCC",
        uuid: "a973c69f-084f-4d03-b73f-76adaf2e4d37"
    }
}

示例:

javascript
const uuid = kauth.generateUUID(); // 生成UUID
const captchaResult = kauth.getCaptcha(uuid);
if (captchaResult.isSuccess) {
    console.log("验证码UUID:", captchaResult.data.uuid);
    console.log("验证码图片:", captchaResult.data.captchaBase64);
} else {
    console.error("获取验证码失败:", captchaResult.msg);
}

6. 用户注册 ​

register(loginName, password, kaPassword, nickName, deviceId, captchaCode, captchaUuid) ​

注册新用户账号。

参数:

  • loginName (string): 登录账号,4-20位字母、数字或下划线
  • password (string): 登录密码,6-20位字母、数字或特殊字符
  • kaPassword (string): 卡密
  • nickName (string, 可选): 用户昵称
  • deviceId (string, 可选): 设备ID
  • captchaCode (string, 可选): 验证码
  • captchaUuid (string, 可选): 验证码UUID

返回值:

javascript
{
    msg: "操作成功",
    code: 200,
    traceId: "2pztmiy9ez9bS3eo",
    elapse: "128",
    respTime: "2025-12-09 15:29:17",
    isSuccess: true,
    data: {
        userId: "1998293861144035330",
        nickName: "test_account1",
        loginName: "test_account1"
    }
}

示例:

javascript
const registerResult = kauth.register(
    "test_account1",  // 登录账号
    "123456",        // 密码
    "pbsmejfq",      // 卡密
    "测试账号",       // 昵称
    deviceId,         // 设备ID
    "",              // 验证码
    ""               // 验证码UUID
);

if (registerResult.isSuccess) {
    console.log("注册成功:", registerResult.data.userId);
} else {
    console.error("注册失败:", registerResult.msg);
}

7. 账号充值 ​

recharge(loginName, kaPassword, deviceId, captchaCode, captchaUuid) ​

为用户账号充值卡密。

参数:

  • loginName (string): 登录账号,4-20位字母、数字或下划线
  • kaPassword (string): 充值卡密
  • deviceId (string, 可选): 设备ID
  • captchaCode (string, 可选): 验证码
  • captchaUuid (string, 可选): 验证码UUID

返回值:

javascript
{
    msg: "操作成功",
    code: 200,
    traceId: "2pztmiy9k1geV45t",
    elapse: "44",
    respTime: "2025-12-09 15:33:13",
    isSuccess: true,
    data: null
}

示例:

javascript
const rechargeResult = kauth.recharge("test_account", "hd3ox8z2", deviceId, "", "");
if (rechargeResult.isSuccess) {
    console.log("充值成功");
} else {
    console.error("充值失败:", rechargeResult.msg);
}

8. 以卡充卡 ​

rechargeKa(cardPwd, rechargeCardPwd) ​

使用一张卡密为另一张卡密充值。

参数:

  • cardPwd (string): 被充值的卡密
  • rechargeCardPwd (string): 充值卡密

返回值: 与充值相同的响应格式。

示例:

javascript
const rechargeKaResult = kauth.rechargeKa("nfl4425f", "vowjnos3");
if (rechargeKaResult.isSuccess) {
    console.log("以卡充卡成功");
} else {
    console.error("以卡充卡失败:", rechargeKaResult.msg);
}

9. 修改密码 ​

changePassword(loginName, oldPassword, newPassword, confirmPassword, captchaCode, captchaUuid) ​

修改用户登录密码。

参数:

  • loginName (string): 登录账号,4-20位字母、数字或下划线
  • oldPassword (string): 旧密码,6-20位字母、数字或特殊字符
  • newPassword (string): 新密码,6-20位字母、数字或特殊字符
  • confirmPassword (string): 确认密码,6-20位字母、数字或特殊字符
  • captchaCode (string, 可选): 验证码
  • captchaUuid (string, 可选): 验证码UUID

返回值: 与充值相同的响应格式。

示例:

javascript
const changePasswordResult = kauth.changePassword(
    "test_account1",  // 登录账号
    "123456",         // 旧密码
    "123123",         // 新密码
    "123123",         // 确认密码
    "",              // 验证码
    ""               // 验证码UUID
);

if (changePasswordResult.isSuccess) {
    console.log("密码修改成功");
} else {
    console.error("密码修改失败:", changePasswordResult.msg);
}

10. 解绑设备 ​

unbindDevice(loginName, password, deviceId, captchaCode, captchaUuid) ​

免登录状态下解绑指定设备。

参数:

  • loginName (string): 登录账号,4-20位字母、数字或下划线
  • password (string): 登录密码,6-20位字母、数字或特殊字符
  • deviceId (string): 设备ID
  • captchaCode (string, 可选): 验证码
  • captchaUuid (string, 可选): 验证码UUID

返回值: 与充值相同的响应格式。

示例:

javascript
const unbindDeviceResult = kauth.unbindDevice("test_account", "123456", deviceId, "", "");
if (unbindDeviceResult.isSuccess) {
    console.log("设备解绑成功");
} else {
    console.error("设备解绑失败:", unbindDeviceResult.msg);
}

11. 卡密解绑设备 ​

unbindDeviceKaPwd(kaPwd, deviceId) ​

免登录状态下使用卡密解绑设备。

参数:

  • kaPwd (string): 卡密
  • deviceId (string): 设备ID

返回值: 与充值相同的响应格式。

示例:

javascript
const unbindDeviceKaPwdResult = kauth.unbindDeviceKaPwd("nfl4425f", deviceId);
if (unbindDeviceKaPwdResult.isSuccess) {
    console.log("设备解绑成功");
} else {
    console.error("设备解绑失败:", unbindDeviceKaPwdResult.msg);
}

12. 获取用户信息 ​

userInfo() ​

需登录,获取当前登录用户的详细信息。

返回值:

javascript
{
    msg: "操作成功",
    code: 200,
    traceId: "2pztmiy8vcufmkz",
    elapse: "7",
    respTime: "2025-12-09 15:14:02",
    isSuccess: true,
    data: {
        userId: "1998290015197954049",
        serverExpireTime: "2025-12-10 15:14:01",
        serverRemainNum: null,
        serverType: "time",
        trial: false
    }
}

示例:

javascript
const userInfoResult = kauth.userInfo();
if (userInfoResult.isSuccess) {
    console.log("用户ID:", userInfoResult.data.userId);
    console.log("服务到期时间:", userInfoResult.data.serverExpireTime);
    console.log("服务类型:", userInfoResult.data.serverType);
} else {
    console.error("获取用户信息失败:", userInfoResult.msg);
}

13. 退出登录 ​

loginOut() ​

需登录,退出当前登录状态。

返回值: 与充值相同的响应格式。

示例:

javascript
const loginOutResult = kauth.loginOut();
if (loginOutResult.isSuccess) {
    console.log("退出登录成功");
} else {
    console.error("退出登录失败:", loginOutResult.msg);
}

14. 心跳 ​

pong() ​

需登录,向服务器发送心跳以保持连接。

返回值: 与充值相同的响应格式。

示例:

javascript
const pongResult = kauth.pong();
if (pongResult.isSuccess) {
    console.log("心跳成功");
} else {
    console.error("心跳失败:", pongResult.msg);
}

程序相关API ​

1. 查询当前程序详情 ​

getProgramDetail() ​

免登录获取程序版本、状态、公告等详细信息。

返回值:

javascript
{
    msg: "操作成功",
    code: 200,
    traceId: "2pztmiy9uhc9y5q8",
    elapse: "8",
    respTime: "2025-12-09 15:41:20",
    isSuccess: true,
    data: {
        programId: "1959821336266936321",
        name: "第一个程序",
        forceUpdateDict: true,
        status: "enable",
        enableRegisterDict: true,
        notice: "测试账号:test 密码:123456",
        currentVersion: {
            versionNo: 1,
            versionName: "1.0.1",
            versionDesc: "1.0.1",
            versionDownUrl: "https://www.baidu.com"
        }
    }
}

示例:

javascript
const programDetailResult = kauth.getProgramDetail();
if (programDetailResult.isSuccess) {
    console.log("程序名称:", programDetailResult.data.name);
    console.log("程序公告:", programDetailResult.data.notice);
    console.log("当前版本:", programDetailResult.data.currentVersion.versionName);
} else {
    console.error("获取程序详情失败:", programDetailResult.msg);
}

2. 获取服务器时间 ​

getServerTime() ​

免登录获取服务器当前时间戳。

返回值:

javascript
{
    msg: "操作成功",
    code: 200,
    traceId: "2pztmiy9veb405vh",
    elapse: "2",
    respTime: "2025-12-09 15:42:03",
    isSuccess: true,
    data: {
        serverTimeStr: "2025-12-09 15:42:03",
        serverTimeMill: "1765266123569",
        serverTimeSec: "1765266123"
    }
}

示例:

javascript
const serverTimeResult = kauth.getServerTime();
if (serverTimeResult.isSuccess) {
    console.log("服务器时间:", serverTimeResult.data.serverTimeStr);
    console.log("服务器时间戳(毫秒):", serverTimeResult.data.serverTimeMill);
} else {
    console.error("获取服务器时间失败:", serverTimeResult.msg);
}

配置相关API ​

1. 修改用户配置 ​

updateUserConfig(config) ​

需卡密登录|用户登录,修改用户配置。

参数:

  • config (string): 自定义配置内容,最大长度255

返回值: 与充值相同的响应格式。

示例:

javascript
const updateUserConfigResult = kauth.updateUserConfig("age:18");
if (updateUserConfigResult.isSuccess) {
    console.log("用户配置修改成功");
} else {
    console.error("用户配置修改失败:", updateUserConfigResult.msg);
}

2. 获取用户配置 ​

getUserConfig() ​

需卡密登录|用户登录,获取用户配置。

返回值:

javascript
{
    msg: "操作成功",
    code: 200,
    traceId: "2pztmiy9x4e7A64f",
    elapse: "9",
    respTime: "2025-12-09 15:43:24",
    isSuccess: true,
    data: {
        config: "age:18"
    }
}

示例:

javascript
const getUserConfigResult = kauth.getUserConfig();
if (getUserConfigResult.isSuccess) {
    console.log("用户配置:", getUserConfigResult.data.config);
} else {
    console.error("获取用户配置失败:", getUserConfigResult.msg);
}

3. 修改卡密配置 ​

updateKaConfig(config) ​

需卡密登录,修改卡密配置。

参数:

  • config (string): 自定义配置内容,最大长度255

返回值: 与充值相同的响应格式。

示例:

javascript
const updateKaConfigResult = kauth.updateKaConfig("deviceNum:12");
if (updateKaConfigResult.isSuccess) {
    console.log("卡密配置修改成功");
} else {
    console.error("卡密配置修改失败:", updateKaConfigResult.msg);
}

4. 获取卡密配置 ​

getKaConfig() ​

需卡密登录,获取卡密配置。

返回值:

javascript
{
    msg: "操作成功",
    code: 200,
    traceId: "2pztmiy9ylscu6c5",
    elapse: "6",
    respTime: "2025-12-09 15:44:33",
    isSuccess: true,
    data: {
        config: "deviceNum:12"
    }
}

示例:

javascript
const getKaConfigResult = kauth.getKaConfig();
if (getKaConfigResult.isSuccess) {
    console.log("卡密配置:", getKaConfigResult.data.config);
} else {
    console.error("获取卡密配置失败:", getKaConfigResult.msg);
}

远程数据相关API ​

1. 获取远程变量 ​

getRemoteVar(key) ​

获取远程变量值,根据变量配置决定是否需要登录。

参数:

  • key (string): 变量或数据的键名

返回值:

javascript
{
    msg: "操作成功",
    code: 200,
    traceId: "2pztmiya0exqD6me",
    elapse: "11",
    respTime: "2025-12-09 15:45:57",
    isSuccess: true,
    data: {
        value: "123213123123"
    }
}

示例:

javascript
const remoteVarResult = kauth.getRemoteVar("test_var_to_get");
if (remoteVarResult.isSuccess) {
    console.log("远程变量值:", remoteVarResult.data.value);
} else {
    console.error("获取远程变量失败:", remoteVarResult.msg);
}

2. 获取远程数据 ​

getRemoteData(key) ​

需登录,获取远程数据值。

参数:

  • key (string): 变量或数据的键名

返回值: 与获取远程变量相同的响应格式。

示例:

javascript
const remoteDataResult = kauth.getRemoteData("remote_val1");
if (remoteDataResult.isSuccess) {
    console.log("远程数据值:", remoteDataResult.data.value);
} else {
    console.error("获取远程数据失败:", remoteDataResult.msg);
}

3. 添加远程数据 ​

addRemoteData(key, value) ​

需登录,添加新的远程数据。

参数:

  • key (string): 数据键名,最大长度32
  • value (string): 数据值,最大长度255

返回值: 与充值相同的响应格式。

示例:

javascript
const addRemoteDataResult = kauth.addRemoteData("remote_val1", "新增一个远程数据");
if (addRemoteDataResult.isSuccess) {
    console.log("远程数据添加成功");
} else {
    console.error("远程数据添加失败:", addRemoteDataResult.msg);
}

4. 更新远程数据 ​

updateRemoteData(key, value) ​

需登录,更新已存在的远程数据。

参数:

  • key (string): 数据键名,最大长度32
  • value (string): 新的数据值,最大长度255

返回值: 与充值相同的响应格式。

示例:

javascript
const updateRemoteDataResult = kauth.updateRemoteData("remote_val1", "修改一个远程变量");
if (updateRemoteDataResult.isSuccess) {
    console.log("远程数据更新成功");
} else {
    console.error("远程数据更新失败:", updateRemoteDataResult.msg);
}

5. 删除远程数据 ​

deleteRemoteData(key) ​

需登录,删除指定的远程数据。

参数:

  • key (string): 要删除的数据键名

返回值: 与充值相同的响应格式。

示例:

javascript
const deleteRemoteDataResult = kauth.deleteRemoteData("remote_val1");
if (deleteRemoteDataResult.isSuccess) {
    console.log("远程数据删除成功");
} else {
    console.error("远程数据删除失败:", deleteRemoteDataResult.msg);
}

6. 调用远程函数 ​

callFunction(functionName, functionParams) ​

需登录,调用远程自定义函数。

参数:

  • functionName (string): 函数名称
  • functionParams (Array): 函数参数列表,数组格式,每个元素包含paramName和paramValue

返回值:

javascript
{
    msg: "操作成功",
    code: 200,
    traceId: "2pztmiyagruiz90s",
    elapse: "21",
    respTime: "2025-12-09 15:58:40",
    isSuccess: true,
    data: {
        result: "24.0"
    }
}

示例:

javascript
// 服务器远程函数脚本内容: return param1 + param2;
const functionParams = [
    {
        paramName: "param1",
        paramValue: "11"
    },
    {
        paramName: "param2",
        paramValue: "13"
    },
];

const callFunctionResult = kauth.callFunction("add", functionParams);
if (callFunctionResult.isSuccess) {
    console.log("远程函数执行结果:", callFunctionResult.data.result);
} else {
    console.error("远程函数调用失败:", callFunctionResult.msg);
}

7. 获取最新的脚本信息 ​

getNewestScript(scriptName) ​

需登录,获取最新的脚本,比对你的程序内置脚本来判断是否要下载。

参数:

  • scriptName (string, 可选): 脚本名称

返回值:

javascript
{
    msg: "操作成功",
    code: 200,
    traceId: "2pztmiyanolsEa4a",
    elapse: "9",
    respTime: "2025-12-09 16:04:03",
    isSuccess: true,
    data: {
        scriptName: "first_update",
        versionNumber: "1.0.1",
        versionDescription: "1.0.1",
        scriptType: "BINARY",
        scriptReleaseTime: "2025-12-09 16:03:50"
    }
}

示例:

javascript
const newestScriptResult = kauth.getNewestScript("first_update");
if (newestScriptResult.isSuccess) {
    console.log("脚本名称:", newestScriptResult.data.scriptName);
    console.log("版本号:", newestScriptResult.data.versionNumber);
    console.log("脚本类型:", newestScriptResult.data.scriptType);
} else {
    console.error("获取最新脚本信息失败:", newestScriptResult.msg);
}

8. 获取脚本下载地址 ​

getScriptDownload(scriptName, versionNumber) ​

免登录,获取脚本下载数据。

参数:

  • scriptName (string): 脚本名称
  • versionNumber (string, 可选): 脚本版本

返回值:

javascript
{
    msg: "操作成功",
    code: 200,
    traceId: "2pztmiyanoogAa4b",
    elapse: "8",
    respTime: "2025-12-09 16:04:03",
    isSuccess: true,
    data: {
        downloadUrl: "https://file.verifyhub.cn/kauth/script/1959818504771862530/57ef405da33a40ef894ec3b22141a691.lrj"
    }
}

示例:

javascript
const newestScriptResult = kauth.getNewestScript("first_update");
if (newestScriptResult.isSuccess) {
    const scriptDownloadResult = kauth.getScriptDownload("first_update", newestScriptResult.data.versionNumber);
    if (scriptDownloadResult.isSuccess) {
        console.log("脚本下载地址:", scriptDownloadResult.data.downloadUrl);
        // 开发者可以使用这个下载地址下载脚本文件
    } else {
        console.error("获取脚本下载地址失败:", scriptDownloadResult.msg);
    }
} else {
    console.error("获取最新脚本信息失败:", newestScriptResult.msg);
}

设备管理相关API ​

1. 解绑当前设备 ​

unBindDevice() ​

需登录,登录状态下直接解绑已登录的卡密、账号解绑当前设备。

返回值: 与充值相同的响应格式。

示例:

javascript
const unBindDeviceResult = kauth.unBindDevice();
if (unBindDeviceResult.isSuccess) {
    console.log("设备解绑成功");
} else {
    console.error("设备解绑失败:", unBindDeviceResult.msg);
}

脚本错误上报API ​

1. 脚本错误上报 ​

reportScriptError(scriptName, errorMessage, stackTrace, line, os, osVersion, deviceId) ​

免登录,用于脚本错误时上报堆栈信息。

参数:

  • scriptName (string): 脚本名称
  • errorMessage (string): 错误信息
  • stackTrace (string, 可选): 堆栈信息
  • line (Integer, 可选): 出错行号
  • os (string, 可选): 操作系统
  • osVersion (string, 可选): 系统版本
  • deviceId (string, 可选): 设备ID

返回值: 与充值相同的响应格式。

示例:

javascript
try {
    // 故意制造一个错误,模拟错误代码上报堆栈信息
    const obj = null;
    obj.method1();
} catch (error) {
    // 解析堆栈信息获取行号
    const stackLines = error.stack.split('\n');
    // 第一行通常是错误信息
    var line = 0;
    if (stackLines.length > 1) {
        const lineInfo = stackLines[1].trim();
        // 提取行号和列号
        // 格式通常为:at 函数名 (文件名:行号:列号)
        const match = lineInfo.match(/:(\d+):(\d+)/);
        if (match) {
            line = match[1];
        }
    }
    
    // 上报错误,可以在程序管理 -> 脚本错误日志中查看
    const reportResult = kauth.reportScriptError(
        "cheese-android",       // 脚本名称
        stackLines[0],          // 错误信息
        error.stack,            // 堆栈信息
        line,                   // 出错行号
        "android",              // 操作系统
        "android 16",           // 系统版本
        deviceId                // 设备ID
    );
    
    if (reportResult.isSuccess) {
        console.log("错误上报成功");
    } else {
        console.error("错误上报失败:", reportResult.msg);
    }
}

自动心跳机制 ​

autoPong(failCallback, interval) ​

开启自动心跳,自动按照指定间隔发送心跳请求。

参数:

  • failCallback (function): 心跳失败回调函数
  • interval (number): 心跳间隔,单位为秒

示例:

javascript
// 开启自动心跳,每10秒发送一次心跳
kauth.autoPong((failMsg) => {
    console.log("心跳失败:", failMsg);
    // 开发者可以在这里做操作,比如说关闭脚本
}, 10);

完整示例:

javascript
// 初始化SDK
const platformType = "cheese_android";
kauth.initConfig("https://api.kauth.cn", "1959821336266936321", "F77VzI7UWAElpWrz", "MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCIpy3ae27yDJOUd5rW/S6tUbAmt/AqJm+VPonT9WJn5VME4FkYJUwdBmIWpzANVQmU+7CA3wv5eVFIOW0xMv9EyoFWDRR24Jt/hgDsZQtUPMaZPivKWxx2S4n4SJWWrGdIRkdC3+fmxrEri1qYicq8PO7mDIrwPR2I0USoKKOFMwIDAQAB");

// 获取设备ID
const deviceId = kauth.getDeviceId();

// 卡密登录
const loginResult = kauth.kaLogin("nfl4425f", deviceId, platformType, "", "");
if (loginResult.isSuccess) {
    console.log("登录成功:", loginResult.data.nickName);
    
    // 开启自动心跳,每10秒发送一次心跳
    kauth.autoPong((failMsg) => {
        console.log("心跳失败:", failMsg);
        // 开发者可以在这里做操作,比如说关闭脚本
    }, 10);
    
    // 继续执行其他业务逻辑
    // ...
} else {
    console.error("登录失败:", loginResult.msg);
}

响应格式说明 ​

所有API的响应都遵循统一的格式:

javascript
{
    msg: "响应消息",          // 响应消息
    code: 200,               // 响应码,200表示成功
    traceId: "跟踪ID",       // 请求跟踪ID,用于问题排查
    elapse: "响应时间",       // 服务器处理时间(毫秒)
    respTime: "响应时间戳",   // 响应时间戳
    isSuccess: true,          // 请求是否成功
    data: {...}              // 响应数据,具体内容根据API不同而不同
}
  • isSuccess 为 true 表示请求成功,false 表示请求失败
  • 成功时 data 字段包含具体的数据
  • 失败时 data 字段为 null
  • 所有API都可以通过检查 isSuccess 字段来判断调用是否成功

注意事项 ​

  1. 初始化顺序:必须先调用 initConfig 初始化SDK,然后才能调用其他API。

  2. 登录状态:部分API需要登录后才能调用,请参考API说明。

  3. 错误处理:每个API调用后都应该检查 isSuccess 字段,判断调用是否成功。

  4. 心跳机制:登录成功后,建议使用自动心跳机制,确保登录状态持续有效。

  5. 错误上报:建议在代码中添加 try-catch 块,捕获异常并上报错误,便于问题排查。

  6. 设备绑定:部分登录方式会绑定设备,解绑设备需要使用相应的解绑API。

常见问题 ​

  1. 初始化失败:请检查传入的参数是否正确,特别是API域名、程序ID、程序密钥和商户公钥。

  2. 登录失败:请检查卡密或账号密码是否正确,以及是否需要验证码。

  3. 心跳失败:可能是网络问题或登录状态过期,建议重新登录。

  4. API调用失败:检查API参数是否正确,以及是否需要登录状态。

  5. 设备绑定问题:确保使用正确的解绑API,注意区分账号解绑和卡密解绑。