upUserModule 用户信息模块

模块概述

用户信息模块为H5页面提供登陆token,昵称,头像等用户相关信息。


方法列表

  • getLoginStatus (获取登录状态)
  • getUserInfo (获取用户信息)
  • updateOauthData (更新用户鉴权信息)
  • logOut (注销登录)
  • refreshUser (刷新用户数据)
  • updateUserInfo (更新用户信息)
  • getOauthData (获取用户鉴权信息)
  • socialLogin (获取第三方登录信息)
  • checkAppIsInstalled (检查应用安装状态)
  • getQQMusicAuthorize (获取qq音乐授权)

公共数据

  • 所有数据均以JSON结构返回,由代码,信息和数据三部分组成
    {
      "retCode": "000000", //接口状态标识码,错误标识码以11开头
      "retInfo": "操作成功",//接口信息说明
      "retData": null //业务数据
    }
    
    具体定义:返回数据通用

用户信息 UserInfoNew

class UserInfoNew {
  userId: number;
  nickname: string = '';
  avatarUrl: string = '';
  weight: number;
  height: number;
  income: number;
  marriage: number;
  birthday: string = '';
  education: number;
  email: string = '';
  extraPhone: string = '';
  familyNum: number;
  gender: string = '';
  givenName: string = '';
}

用户获取鉴权信息 OauthData

class OauthData {
  // 海尔集团用户中心颁发的用户令牌
  user_center_access_token: string;
  // 有效时长
  expires_in: string;
  // 刷新token
  refresh_token: string;
  // uhome服务接口的accessToken
  uhome_access_token: string;
  // uhome服务接口的用户id
  uhome_user_id: string;
}

更新鉴权信息 AuthData

class AuthData {
  // 用户中心的accessToken
  access_token: string;
  // 有效时长
  expires_in: string;
  // 刷新token
  refresh_token: string;
  // uhome服务接口的accessToken
  uhome_access_token: string;
  // uhome服务接口的用户id
  uhome_user_id: string;
  // token类型
  token_type: string;
}

模块变更记录

  • V4.0.0

    • 删除方法:
      • cancelLogin (取消登录)
      • userExtraInfoChangeListener (用户扩展信息变化监听)
    • 方法实现变动:
      • checkAppIsInstalled native代码改为由重构后的UpUmengPlugin实现此接口
      • socialLogin native代码改为由重构后的UpUmengPlugin实现此接口,其中facebook登录由UpFaceBookPlugin实现
      • getQQMusicAuthorize native代码改为由重构后的UpQQMusicPlugin实现此接口
  • V3.0.0

    • 模块名由userModule更改为upUserModule;原模块中签名相关方法,在3.0.0版本中调整新模块upRequestModule(优家服务接口签名请求模块)

    • 新增方法:

    • 删除方法:

      • getSignCode (获取签名)
      • getCommonSignCode (获取签名,sha256加密)
      • getCommonSignCodeAndBody (获取签名,sha256加密)
      • updateOauthData (更新用户鉴权信息)
    • 方法变更:

      • getLoginStatus方法返回数据改变
      • getUserInfo方法返回数据改变
  • V3.2.0

    • 用户信息模块未定义的retCode编码按照通用数据规定变为990001,操作失败retCode变为000001,非法参数错误retCode变为000002
    • 增加方法 getQQMusicAuthorize(获取QQ音乐权限)

方法说明

  • getLoginStatus (获取登录状态)

    getLoginStatus()
适用性
容器 Nebula
支持情况
APP版本 6.12.0 及以上
params 输入参数:

错误返回 retCode说明:

按照通用

正确返回 retData说明
属性名 数据类型 说明
isLogin Boolean 是否已登陆
isLogining Boolean 是否正在登陆
示例

调用方式

uplusapi.upUserModule.getLoginStatus().then((result) =>console.log('result',result));

成功返回结果

{
    "retCode":"000000",
    "retInfo":"操作成功",
    "retData":{
        "isLogin":true,
        "isLogining":false,
    }
}
  • getUserInfo (获取用户信息)

    getUserInfo()
适用性
容器 Nebula
支持情况
APP版本 6.12.0 及以上
params 输入参数:

错误返回 retCode说明:
retCode编码 retInfo说明
110001 用户未登录
110002 用户数据未刷新完成
正确返回 retData说明:
属性名 数据类型 说明
userId String 优家云平台用户ID
uhome_access_token String 访问令牌,优家云平台颁发,30位字符
user_center_access_token String 访问令牌,海尔集团用户中心颁发的用户令牌
offUserId String 海尔用户中心ID
nickname String 用户昵称
phoneNumber String 用户电话
realName String 用户真实姓名
avatar String 用户头像地址
email String 用户邮箱
username String 用户accountID
示例

调用方式

uplusapi.upUserModule.getUserInfo().then((result) =>console.log('result',result));

成功返回结果

{
    "retCode": "000000",
    "retInfo": "获取用户信息成功",
    "retData": {
        "userId": "25950360",
        "uhome_access_token":"TGT3P116MHNNRFHF2H0WLT59SID9D0",
        "offUserId":"66133631",
        "avatar":"http://resource.haier.net:80/download/resource/uzhsh/123445566/1234345456655.jpeg",
        "nickname":"mynickname",
        "phoneNumber":"14753161616",
        "realName":"14753161616",
        "user_center_access_token":"ebfd6962-ea51-4a4a-b655-ffb4defa2870",
        "email":"uhome@haier.com"
    }
}
  • updateUserInfo (更新用户数据)

    updateUserInfo()
适用性
容器 Nebula
支持情况
APP版本 6.20.0 及以上
params 输入参数:
属性名 数据类型 是否必填 说明
data UserInfoNew 用户数据,若某个字段为空则使用该字段上的原值更新
错误返回 retCode说明:
retCode编码 retInfo说明
000000 操作成功
110001 用户未登录
110002 用户数据未刷新完成
正确返回 retData说明

示例

调用方式

uplusapi.upUserModule.updateUserInfo(userInfo).then((result) =>console.log('result',result));

成功返回结果

{
    "retCode": "000000",
    "retInfo": "",
    "retData": {
    }
}
  • updateOauthData (更新用户鉴权信息)

    updateOauthData()
适用性
容器 Nebula
支持情况
APP版本 6.20.0 及以上
params (data)输入参数:
属性名 数据类型 是否必填 说明
access_token String 用户中心的accessToken
expires_in String 有效时长
refresh_token String 刷新token
uhome_access_token String uhome服务接口的accessToken
uhome_user_id String uhome服务接口的用户id
token_type String token类型
错误返回 retCode说明:
retCode编码 retInfo说明
000000 操作成功
正确返回 retData说明

示例

调用方式

uplusapi.upUserModule.updateOauthData({
    'access_token': 'access_token',
    'expires_in': 'expires_in',
    'refresh_token': 'refresh_token',
    'uhome_access_token': 'uhome_access_token',
    'uhome_user_id': 'uhome_user_id',
    'token_type': 'token_type',
  }).then((result) =>console.log('result',result));

成功返回结果

{
    "retCode": "000000",
    "retInfo": "",
    "retData": {
    }
}
  • logOut (注销登录)

    logOut()
适用性
容器 Nebula
支持情况
APP版本 6.20.0 及以上
params 输入参数:

错误返回 retCode说明:
retCode编码 retInfo说明
000000 操作成功
正确返回 retData说明

示例

调用方式

uplusapi.upUserModule.logOut().then((result) =>console.log('result',result));

成功返回结果

{
    "retCode": "000000",
    "retInfo": "",
    "retData": {
    }
}
  • refreshUser (刷新用户数据)

    refreshUser()
适用性
容器 Nebula
支持情况
APP版本 6.20.0 及以上
params 输入参数:

错误返回 retCode说明:
retCode编码 retInfo说明
000000 操作成功

|110001|用户未登录 |

正确返回 retData说明

示例

调用方式

uplusapi.upUserModule.refreshUser().then((result) =>console.log('result',result));

成功返回结果

{
    "retCode": "000000",
    "retInfo": "",
    "retData": {
    }
}
  • getOauthData (获取用户鉴权信息)

    getOauthData()
适用性
容器 Nebula
支持情况
APP版本 6.20.0 及以上
params 输入参数:

错误返回 retCode说明:
retCode编码 retInfo说明
000000 操作成功
110001 用户未登录
110011 登录中
正确返回 retData说明
数据类型 说明
OauthData 鉴权信息对象
示例

调用方式

uplusapi.upUserModule.getOauthData().then((result) =>console.log('result',result));

成功返回结果

{
    "retCode": "000000",
    "retInfo": "",
    "retData": {
        "user_center_access_token": "xxx",
        "expires_in": "xxx",
        "refresh_token": "xxx",
        "uhome_access_token": "xxx",
        "uhome_user_id": "xxx",
    }
}
  • socialLogin (获取第三方登录信息)

    socialLogin()
适用性
容器 cordova APICloud Nebula
支持情况
APP版本 / / 6.12.0 及以上
params 输入参数:
属性名 数据类型 是否必填 说明
platform String 平台类型,取值范围:qq\wechat\appleId\facebook(appleId为ios独有,只限东南亚版本;facebook只限东南亚)
错误返回 retCode说明:
retCode编码 retInfo说明
110010 取消第三方登录(iOS部分系统下可能没有返回)
000001 参数无效(入参)/第三方登录失败
正确返回 retData说明:
属性名 数据类型 说明
accessToken String 第三方应用token
openId String 取自第三方授权返回的uid
realOpenId String 第三方应用openId(使用友盟的openid字段,https://developer.umeng.com/docs/128606/detail/193884#h2-u65B0u6D6Au5FAEu535A3)新浪微博、facebook没有此字段
socialAppId String 第三方应用appId(facebook没有此字段)
socialAppSecret String 第三方应用AppSecret(facebook没有此字段)
nickName String facebook登录独有的昵称字段
iconUrl String facebook登录独有的头像字段(Android返回链接为https://virtual.uplus.com/"拼上本地的文件地址)
示例

调用方式

uplusapi.upUserModule.socialLogin({platform: 'qq'}).then((result) =>console.log('result',result));

成功返回结果

{
    "retCode": "000000",
    "retInfo": "执行成功",
    "retData": {
        "accessToken": "15CE19D7A4A4C851FA194838D57BEEDF",
        "openId": "53363459385B9489ACBF94940988C702",
        "socialAppId": "1104627851",
        "socialAppSecret": "eeDcb1Dn6tgbThVy"
        "authorizationCode": "xxxxxxxxx"
    }
}
  • checkAppIsInstalled (检查第三方应用安装状态)

    checkAppIsInstalled()
适用性
容器 cordova APICloud Nebula
支持情况
APP版本 / / 6.12.0 及以上
params 输入参数:
属性名 数据类型 是否必填 说明
platform String 平台类型,取值范围:qq\weibo\wechat
错误返回 retCode说明:

按照通用

正确返回 retData说明:
属性名 数据类型 说明
status Boolean 第三方应用安装状态
示例

调用方式

uplusapi.upUserModule.checkAppIsInstalled({platform: 'qq'}).then((result) =>console.log('result',result));

成功返回结果

{
    "retCode": "000000",
    "retInfo": "执行成功",
    "retData": {
        "status": true
    }
}
  • getQQMusicAuthorize (获取qq音乐授权)

    getQQMusicAuthorize()
适用性
容器 cordova APICloud Nebula
支持情况
APP版本 / / 7.5.0 及以上
params 输入参数:

错误返回 retCode说明:
retCode编码 retInfo说明
000001 操作失败(Android独有)
1100001 未安装QQ音乐
1100002 拉起qq音乐,但QQ音乐处于未登录状态(Android独有)
1100003 授权失败
1100004 授权取消
正确返回 retData说明:
属性名 数据类型 说明
openId String QQ音乐openId
token String QQ音乐授权token(有效期30天)
timeStamp String 时间戳(Android独有)
示例

调用方式

uplusapi.upUserModule.getQQMusicAuthorize().then((result) =>console.log('result',result));

成功返回结果

{
    "retCode": "000000",
    "retInfo": "调用成功",
    "retData": {
        "openId": " ",
        "token": " ",
        "timeStamp": " "
    }
}

常见问题

  • 在智家APP中,如果需要获取当前登录用户的用户信息,可以使用getUserInfo接口获取,这里有一种特殊情景需要特别注意:当用户在APP内登录完成直接跳转至某H5业务页面,此时H5页面初始化需要调用getUserInfo接口获取当前登录用户信息,getUserInfo有概率会返回110002异常code码,此code码标明当前APP正在获取用户信息,用户数据未完全准备就绪;遇到此情况,可以在前端间隔300ms循环调用三次此接口,就能拿到用户信息
    let num = 0;
    function getUserInfo(){
      instance.initDeviceReady().then(function() {
          instance.upUserModule.getUserInfo().then((res) => {
              // TODO
              console.log(res);
          }).catch((err) => {
              if (err.retCode === '110002' && num < 3) {
                  num ++;
                  getUserInfo();
              }
          });
      }).catch(err => console.log(err));
    }
    

results matching ""

    No results matching ""