Skip to content

用户模块

获取个人信息

  1. 请求链接: /user/getUserInfo

  2. 请求方式: POST

  3. 参数说明:

无参数

  1. 返回参数及示例:
参数类型描述
statusInt状态码
statusTextString提示信息
contentString返回数据
mobileString手机号
uidInt用户ID
haveSafeAnswerBoolean是否已设置安全答案
nicknameString昵称
headUrlString头像URL
accountNameString账号名称
countryIdInt国家ID
emailString邮箱
countryNameString国家名称
isIdCardInt是否已实名认证
isVipInt是否开通高级服务
isNeedVerifyInt是否需实名认证
deviceIdString最新的极光设备ID
deviceIdsArray绑定了极光所有设备ID
unreadMessageCountInt未读消息数量
amazonAlexaObjectAmazon Alexa配置
googleHomeObjectGoogle Home配置
starchartObject星图配置
cloudStorageObject云存储配置
json
{
  "mobile": "",
  "uid": 16599773,
  "haveSafeAnswer": false,
  "nickname": "786612630",
  "headUrl": "",
  "accountName": "786612630@qq.com",
  "countryId": 9,
  "email": "786612630@qq.com",
  "countryName": "中国",
  "isIdCard": 0,
  "isVip": 0,
  "isNeedVerify": 0,
  "deviceId": "",
  "deviceIds": ["000", "111"],
  "unreadMessageCount": 30,
  "amazonAlexa": {
    "skillName": "Lock",
    "langs": [
      "美国",
      "加拿大",
      "英国",
      "澳大利亚",
      "法国",
      "意大利",
      "巴西",
      "印度"
    ]
  },
  "googleHome": {
    "actionName": "ScienerSmart",
    "langs": [
      "英语"
    ]
  },
  "starchart": {
    "starchartId": "1",
    "starchartPeerPublicKey": "2",
    "starchartPeerPrivateKey": "2"
  },
  "cloudStorage": {
    "status": 1,
    "days": 2,
    "expireTime": "2025-04-17 18:10:23",
    "remainDays": 1
  }
}

更新个人信息

  1. 请求链接: /user/updateUserInfo

  2. 请求方式: POST

  3. 参数说明:

名称类型是否必需示例描述
headUrlStringN""头像地址
nicknameStringN"-"昵称
langStringN""语言,请看语言常量
is_amazon_alexaintN0是否打开amazon alexa 0否 1是
is_google_homeintN0是否打开google home 0否 1是
  1. 返回参数及示例:
参数类型描述
statusInt状态码
statusTextString提示信息
contentString返回数据
errorCodeInt错误码
descriptionString描述
errorMsgString错误信息
json
{
  "errorCode": 0,
  "description": "表示成功或是。",
  "errorMsg": "success or means yes"
}

获取安全信息列表

  1. 请求链接: /safeAnswer/getQuestionList

  2. 请求方式: POST

  3. 参数说明:

名称类型是否必需示例描述
countryCodeStringY86如果是其他国家的,需要传国家代码,本国可以默认不传
  1. 返回参数及示例:
参数类型描述
statusInt状态码
statusTextString提示信息
contentString返回数据
firstListArray第一组问题列表
secondListArray第二组问题列表
thirdListArray第三组问题列表
questionString问题内容
questionIdInt问题ID
json
{
  "firstList": [
    {
      "question": "你第一次乘坐飞机去的是哪个城市?",
      "questionId": 1
    },
    {
      "question": "你的QQ号码是多少?",
      "questionId": 2
    },
    {
      "question": "你的第一个宠物叫什么名字?",
      "questionId": 3
    },
    {
      "question": "你爸爸是哪年出生的?",
      "questionId": 4
    },
    {
      "question": "你看的第一部电影叫什么名字?",
      "questionId": 5
    }
  ],
  "secondList": [
    {
      "question": "你最想从事的工作是什么?",
      "questionId": 6
    },
    {
      "question": "你的第一辆车是什么品牌?",
      "questionId": 7
    },
    {
      "question": "你的小名叫什么?",
      "questionId": 8
    },
    {
      "question": "你上高中时最喜欢的电影明星是谁?",
      "questionId": 9
    },
    {
      "question": "你大学是哪年毕业的?",
      "questionId": 10
    }
  ],
  "thirdList": [
    {
      "question": "你在哪个城市出生?",
      "questionId": 11
    },
    {
      "question": "你第一个老板的全名是什么?",
      "questionId": 12
    },
    {
      "question": "你在哪个城市遇到你的爱人?",
      "questionId": 13
    },
    {
      "question": "你最喜欢哪支NBA球队?",
      "questionId": 14
    },
    {
      "question": "你爷爷的名字是什么?",
      "questionId": 15
    }
  ]
}

获取已设置的安全信息

  1. 请求链接: /safeAnswer/getOwnQuestionList

  2. 请求方式: POST

  3. 参数说明:

无参数

  1. 返回参数及示例:
参数类型描述
statusInt状态码
statusTextString提示信息
contentString返回数据
answerIdInt答案ID
answerString答案内容
uidInt用户ID
questionIdInt问题ID
questionString问题内容
json
[
  {
    "answerId": 31,
    "answer": "三亚332",
    "uid": 587,
    "questionId": 1,
    "question": "你第一次乘坐飞机去的是哪个城市?"
  },
  {
    "answerId": 32,
    "answer": "三亚2222",
    "uid": 587,
    "questionId": 7,
    "question": "你的第一辆车是什么品牌?"
  },
  {
    "answerId": 33,
    "answer": "1三亚2222",
    "uid": 587,
    "questionId": 7,
    "question": "你的第一辆车是什么品牌?"
  }
]

设置安全信息

  1. 请求链接: /safeAnswer/set

  2. 请求方式: POST

  3. 参数说明:

名称类型是否必需示例描述
questionAndAnswerListStringY"[{"questionId":"1","answer":"三亚","question":"你第一次乘坐飞机去的是哪个城市?","isWrong":false},{"questionId":"7","answer":"传祺","question":"你的第一辆车是什么品牌?","isWrong":false},{"questionId":"13","answer":"深圳","question":"你在哪个城市遇到你的爱人?","isWrong":false}]"问题答案列表(JSON字符串)

questionAndAnswerList 格式说明:

  • questionId: 问题ID
  • answer: 答案内容
  • question: 问题内容
  • isWrong: 是否错误
json
[
  {
    "questionId": "1",
    "answer": "三亚",
    "question": "你第一次乘坐飞机去的是哪个城市?",
    "isWrong": false
  },
  {
    "questionId": "7",
    "answer": "传祺",
    "question": "你的第一辆车是什么品牌?",
    "isWrong": false
  },
  {
    "questionId": "13",
    "answer": "深圳",
    "question": "你在哪个城市遇到你的爱人?",
    "isWrong": false
  }
]
  1. 返回参数及示例:
参数类型描述
statusInt状态码
statusTextString提示信息
contentString返回数据
errorCodeInt错误码
descriptionString描述
errorMsgString错误信息
json
{
  "errorCode": 0,
  "description": "表示成功或是。",
  "errorMsg": "success or means yes"
}

修改密码

  1. 请求链接: /user/changePassword

  2. 请求方式: POST

  3. 参数说明:

名称类型是否必需示例描述
dateStringY"1689298549000"时间戳
newPasswordStringY"f1ce0d10501f42a649f2035bb5830971"新密码
oldPasswordStringY"f1ce0d10501f42a649f2035bb5830971"旧密码
  1. 返回参数及示例:
参数类型描述
statusInt状态码
statusTextString提示信息
contentString返回数据
errorCodeInt错误码
descriptionString描述
errorMsgString错误信息
json
{
  "errorCode": 0,
  "description": "表示成功或是。",
  "errorMsg": "success or means yes"
}

获取解绑手机号Token

⚠️ 已废弃(Deprecated) 此接口已被新的灵活换绑接口取代,建议使用 /user/flexibleBindToken/user/flexibleBind 接口。 新接口支持更灵活的验证方式,详见下方"灵活换绑"章节。

  1. 请求链接: /user/unbindPhoneToken

  2. 请求方式: POST

  3. 参数说明:

名称类型是否必需示例描述
verificationCodeStringY"613915"验证码
  1. 返回参数及示例:
参数类型描述
statusInt状态码
statusTextString提示信息
contentString返回数据
tokenString用作下一步修改请求参数
json
{
  "token": "613915"
}

获取解绑邮箱Token

⚠️ 已废弃(Deprecated) 此接口已被新的灵活换绑接口取代,建议使用 /user/flexibleBindToken/user/flexibleBind 接口。 新接口支持更灵活的验证方式,详见下方"灵活换绑"章节。

  1. 请求链接: /user/unbindEmailToken

  2. 请求方式: POST

  3. 参数说明:

名称类型是否必需示例描述
verificationCodeStringY"613915"验证码
  1. 返回参数及示例:
参数类型描述
statusInt状态码
statusTextString提示信息
contentString返回数据
tokenString用作下一步修改请求参数
json
{
  "token": "613915"
}

修改绑定邮箱

⚠️ 已废弃(Deprecated) 此接口已被新的灵活换绑接口取代,建议使用 /user/flexibleBindToken/user/flexibleBind 接口。 新接口支持更灵活的验证方式,详见下方"灵活换绑"章节。

  1. 请求链接: /user/bindEmail

  2. 请求方式: POST

  3. 参数说明:

名称类型是否必需示例描述
emailStringY"18682150237@163.com"新邮箱地址
verificationCodeStringY"613915"验证码
unbindTokenStringN"PYIlxRTCu3ESjSGPkoFWeavE"如果是换绑则必填
  1. 返回参数及示例:
参数类型描述
statusInt状态码
statusTextString提示信息
contentString返回数据
errorCodeInt错误码
descriptionString描述
errorMsgString错误信息
json
{
  "errorCode": 0,
  "description": "表示成功或是。",
  "errorMsg": "success or means yes"
}

修改绑定手机号

⚠️ 已废弃(Deprecated) 此接口已被新的灵活换绑接口取代,建议使用 /user/flexibleBindToken/user/flexibleBind 接口。 新接口支持更灵活的验证方式,详见下方"灵活换绑"章节。

  1. 请求链接: /user/bindPhone

  2. 请求方式: POST

  3. 参数说明:

名称类型是否必需示例描述
countryCodeStringY"+86"国家代码
accountStringY"13392170171"手机号
verificationCodeStringY"470293"验证码
unbindTokenStringN"PYIlxRTCu3ESjSGPkoFWeavE"如果是换绑则必填
  1. 返回参数及示例:
参数类型描述
statusInt状态码
statusTextString提示信息
contentString返回数据
errorCodeInt错误码
descriptionString描述
errorMsgString错误信息
json
{
  "errorCode": 0,
  "description": "表示成功或是。",
  "errorMsg": "success or means yes"
}

灵活换绑-获取验证token

  1. 请求链接: /user/flexibleBindToken

  2. 请求方式: POST

  3. 参数说明:

名称类型是否必需示例描述
verifyChannelIntY1验证渠道:1-手机号 2-邮箱
verificationCodeStringY"123456"验证码(6位数字)

说明

  • 用户选择用现有的邮箱或手机号验证身份
  • 验证码需要先通过 /user/sendValidationCodeAuth 发送,codeType 使用 11(灵活换绑身份验证)
  • 验证通过后返回token,有效期1小时
  1. 返回参数及示例:
参数类型描述
statusInt状态码
statusTextString提示信息
contentObject返回数据
tokenString验证token(128位随机字符串)
errorCodeInt错误码
descriptionString描述
errorMsgString错误信息
json
{
  "errorCode": 0,
  "description": "表示成功或是。",
  "errorMsg": "success or means yes",
  "token": "xK8mP2nQ5vR9wT3yU7zB1cD4eF6gH0jL..."
}

灵活换绑-执行绑定

  1. 请求链接: /user/flexibleBind

  2. 请求方式: POST

  3. 参数说明:

名称类型是否必需示例描述
flexibleBindTokenStringY"xK8mP2nQ5vR9..."第一步获取的验证token
bindTypeIntY2绑定类型:1-手机号 2-邮箱
countryCodeStringN"86"国家区号(绑定手机号时必填)
accountStringY"newemail@example.com"新的邮箱或手机号
verificationCodeStringY"123456"新账号的验证码(6位数字)

说明

  • 使用第一步获取的 flexibleBindToken 进行身份验证
  • 新账号的验证码需要先通过 /user/sendValidationCodeAuth 发送
    • 绑定邮箱:codeType=6, channel=2
    • 绑定手机号:codeType=3, channel=1
  • 如果绑定的是已有类型(如已有邮箱再绑邮箱),则替换旧值
  • 绑定成功后会同步更新云平台的账号信息

使用场景

  • 用手机号验证来绑定新邮箱
  • 用邮箱验证来绑定新手机号
  • 用手机号验证来更换手机号
  • 用邮箱验证来更换邮箱
  1. 返回参数及示例:
参数类型描述
statusInt状态码
statusTextString提示信息
contentString返回数据
errorCodeInt错误码
descriptionString描述
errorMsgString错误信息
json
{
  "errorCode": 0,
  "description": "表示成功或是。",
  "errorMsg": "success or means yes"
}

上传头像

请使用公共接口"获取文件上传参数"获取上传参数,然后调用 updateUserInfo 接口更新头像。

修改安全信息

  1. 请求链接: /safeAnswer/update

  2. 请求方式: POST

  3. 参数说明:

名称类型是否必需示例描述
questionAndAnswerListarrayY[]修改参数格式看下方代码块

questionAndAnswerList 格式说明:

  • answerId: 答案ID
  • answer: 答案内容
  • questionId: 问题ID
json
[
  {
    "answerId": "31",
    "answer": "三亚332",
    "questionId": "1"
  },
  {
    "answerId": "32",
    "answer": "三亚2222",
    "questionId": "7"
  },
  {
    "answerId": "33",
    "answer": "1三亚2222",
    "questionId": "7"
  }
]
  1. 返回参数及示例:
参数类型描述
statusInt状态码
statusTextString提示信息
contentString返回数据
errorCodeInt错误码
descriptionString描述
errorMsgString错误信息
json
{
  "errorCode": 0,
  "description": "表示成功或是。",
  "errorMsg": "success or means yes"
}

获取微信公众号二维码

  1. 请求链接: /user/getMpWechatQrCode

  2. 请求方式: POST

  3. 参数说明:

无参数

  1. 返回参数及示例:
参数类型描述
statusInt状态码
statusTextString提示信息
contentString返回数据
qrCodeUrlString二维码URL
json
{
  "qrCodeUrl": "https://mp.weixin.qq.com/cgi-bin/showqrcode?ticket=gQHk8DwAAAAAAAAAAS5odHRwOi8vd2VpeGluLnFxLmNvbS9xLzAyZ1pKQmdKeUhmdUYxM3RseWhDMVQAAgTdiPplAwQAjScA"
}

设置微信公众号推送

  1. 请求链接: /user/setMpWechatPushSwitch

  2. 请求方式: POST

  3. 参数说明:

名称类型是否必需示例描述
mpWechatPushSwitchintY10默认 1开关 2关闭
  1. 返回参数及示例:
参数类型描述
statusInt状态码
statusTextString提示信息
contentString返回数据
errorCodeInt错误码
descriptionString描述
errorMsgString错误信息
json
{
  "errorCode": 0,
  "description": "表示成功或是。",
  "errorMsg": "success or means yes"
}

设置APP消息推送开关

  1. 请求链接: /user/setPushSwitch

  2. 请求方式: POST

  3. 参数说明:

名称类型是否必需示例描述
appPushSwitchintY10/1 开关
  1. 返回参数及示例:
参数类型描述
statusInt状态码
statusTextString提示信息
contentString返回数据
errorCodeInt错误码
descriptionString描述
errorMsgString错误信息
json
{
  "errorCode": 0,
  "description": "表示成功或是。",
  "errorMsg": "success or means yes"
}

绑定星图配置

  1. 请求链接: /userStarchart/bindUserStarchart

  2. 请求方式: POST

  3. 参数说明:

名称类型是否必需示例描述
starchartIdStringY""星图ID
starchartPeerPublicKeyStringY""星图对等公钥
starchartPeerPrivateKeyStringY""星图对等私钥
  1. 返回参数及示例:
参数类型描述
statusInt状态码
statusTextString提示信息
contentString返回数据
starchartIdString星图ID
starchartPeerPublicKeyString星图对等公钥
starchartPeerPrivateKeyString星图对等私钥
json
{
  "starchartId": "1",
  "starchartPeerPublicKey": "2",
  "starchartPeerPrivateKey": "2"
}

获取支持语言列表

  1. 请求链接: /lang/getList

  2. 请求方式: POST

  3. 参数说明:

名称类型是否必需示例描述
  1. 返回参数及示例:
参数类型描述
errorCodeInt错误码
descriptionString描述
errorMsgString错误信息
dataObject返回数据
json
{
  "errorCode": 0,
  "description": "success",
  "errorMsg": "success",
  "data": {
    "zh_CN": "简体中文",
    "en_US": "English"
  }
}

获取语言包

  1. 请求链接: /lang/getList

  2. 请求方式: POST

  3. 参数说明:

名称类型是否必需示例描述
langstringY"zh_CN"语言包编号,编号通过接口:8.18.1 获取支持语言列表,获取
  1. 返回参数及示例:
参数类型描述
errorCodeInt错误码
descriptionString描述
errorMsgString错误信息
dataObject返回数据
json
{
  "errorCode": 0,
  "description": "success",
  "errorMsg": "success",
  "data": {
    "lang": {
      "周一": "Monday",
      "周二": "Tuesday",
      "周三": "Wednesday",
      "周四": "Thursday",
      "周五": "Friday",
      "周六": "Saturday",
      "周日": "Sunday"
    }
  }
}

物联网设备通信协议文档