Skip to content

获取用户详细信息接口

用于获取指定用户的详细信息,支持通过GET或POST方式传递参数,需填写应用ID、用户账号等必填信息,可选传递用户令牌(需后台启用),应用签名从后台直接获取。

请求地址 GET / POST

http
https://nobase.cn/api/user/data

请求参数

参数名类型必选说明
appidstring✅ 是应用ID,从开发者中心获取的应用唯一标识
tokenstring❌ 否用户令牌,需在后台“应用配置”中启用后才需传递
userstring✅ 是用户账号,填写需查询的用户唯一账号(如手机号、用户名)
signaturestring✅ 是应用签名,从后台直接获取(无需手动生成,与appid绑定)

返回示例

成功响应(获取用户信息成功)

json
{
  "code": 200,
  "msg": "success",
  "data": {
      "username": "123456",
      "nickname": "用户昵称",
      "qq": "未绑定",
      "useremail": "未绑定",
      "exp": 10,
      "grade": 1,
      "title": "未佩戴",
      "createtime": "2024-08-28 13:02:19",
      "logintime": "2024-08-28 13:46:41",
      "viptime": "已逾期(1时)",
      "Continuous": 0,
      "piastrenum": 10,
      "likes": 0,
      "Continuouslogin": 0,
      "signature": "此用户很懒,连签名都没有留下",
      "icon": "用户头像链接",
      "foll": 0,
      "fans": 0,
      "forum": 0,
      "sex": 1
  }
}

返回数据结构

参数名类型说明
codenumber状态码:200=获取成功,400=参数错误/业务失败,500=系统错误
msgstring状态描述:success=成功,fail=失败
dataobject/string响应数据:code=200时为用户信息对象,code≠200时为错误提示字符串
data.usernamestring用户账号(查询用唯一账号)
data.nicknamestring用户昵称
data.qqstring用户QQ号(未绑定则返回“未绑定”)
data.useremailstring用户邮箱(未绑定则返回“未绑定”)
data.expnumber用户经验值
data.gradenumber用户等级
data.titlestring用户头衔(未佩戴则返回“未佩戴”)
data.createtimestring用户账号创建时间(格式:YYYY-MM-DD HH:MM:SS)
data.logintimestring用户最后登录时间(格式:YYYY-MM-DD HH:MM:SS)
data.viptimestringVIP有效期(逾期则返回“已逾期(xx时/月)”)
data.Continuousnumber连续签到天数
data.piastrenumnumber用户余额货币数量
data.likesnumber用户获赞数量
data.Continuousloginnumber连续登录天数
data.signaturestring用户个人签名(未设置则返回默认提示)
data.iconstring用户头像URL地址
data.follnumber用户关注人数
data.fansnumber用户粉丝人数
data.forumnumber用户发布帖子数量
data.sexnumber用户性别(1=男,2=女)

代码示例

javascript
// 1. 配置参数(必填项需替换为实际值,signature从后台获取)
const appid = "your_app_id"; // 应用ID(必填)
const signature = "your_signature_from_backend"; // 应用签名(后台获取,必填)
const token = "your_user_token"; // 可选,后台未启用可删除
const user = "123456"; // 需查询的用户账号(必填)

// 2. 拼接GET参数(处理可选参数,无则不添加)
const params = new URLSearchParams({
  appid,
  signature,
  user
});
if (token) params.append('token', token);

// 3. 发起GET请求
const requestUrl = `https://nobase.cn/api/user/data?${params.toString()}`;
fetch(requestUrl)
  .then(response => {
    if (!response.ok) throw new Error(`HTTP错误:${response.status}`);
    return response.json();
  })
  .then(res => {
    if (res.code === 200) {
      // 获取成功,解析用户详细信息
      const userDetail = res.data;
      console.log("用户昵称:", userDetail.nickname);
      console.log("用户等级:", userDetail.grade, ",经验值:", userDetail.exp);
      console.log("最后登录时间:", userDetail.logintime);
      console.log("用户头像:", userDetail.icon);
    } else {
      // 获取失败,提示错误
      console.error("获取用户信息失败:", res.data);
    }
  })
  .catch(error => console.error("请求异常:", error));
javascript
// 1. 配置参数(同GET,signature从后台获取)
const appid = "your_app_id";
const signature = "your_signature_from_backend"; // 后台获取的签名
const token = "your_user_token"; // 可选
const user = "123456"; // 需查询的用户账号

// 2. 构造POST参数(处理可选参数)
const params = new URLSearchParams({
  appid,
  signature,
  user
});
if (token) params.append('token', token);

// 3. 发起POST请求
fetch('https://nobase.cn/api/user/data', {
  method: 'POST',
  body: params,
  headers: {
    'Content-Type': 'application/x-www-form-urlencoded'
  }
})
  .then(response => {
    if (!response.ok) throw new Error(`HTTP错误:${response.status}`);
    return response.json();
  })
  .then(res => {
    if (res.code === 200) {
      const userDetail = res.data;
      console.log("用户余额:", userDetail.piastrenum);
      console.log("VIP状态:", userDetail.viptime);
      console.log("用户性别:", userDetail.sex === 1 ? "男" : "女");
    } else {
      console.error("获取用户信息失败:", res.data);
    }
  })
  .catch(error => console.error("请求异常:", error));
python
import requests
from datetime import datetime

# 1. 配置参数(必填项需替换为实际值,signature从后台获取)
appid = "your_app_id"  # 应用ID(必填)
signature = "your_signature_from_backend"  # 应用签名(后台获取,必填)
token = "your_user_token"  # 可选,后台未启用可设为None
user = "123456"  # 需查询的用户账号(必填)

# 2. 构造GET参数(处理可选参数)
params = {
    "appid": appid,
    "signature": signature,
    "user": user
}
if token:
    params["token"] = token

# 3. 发起GET请求
url = "https://nobase.cn/api/user/data"
try:
    response = requests.get(url, params=params, timeout=5)
    response.raise_for_status()  # 抛出HTTP错误
    res_data = response.json()

    if res_data["code"] == 200:
        # 获取成功,解析用户信息
        user_info = res_data["data"]
        print(f"用户信息获取成功!")
        print(f"昵称:{user_info['nickname']},账号创建时间:{user_info['createtime']}")
        print(f"连续登录天数:{user_info['Continuouslogin']},关注人数:{user_info['foll']}")
        print(f"粉丝人数:{user_info['fans']},发布帖子数:{user_info['forum']}")
    else:
        print(f"获取失败:{res_data['data']}")

except requests.exceptions.RequestException as e:
    print(f"请求异常:{str(e)}")
python
import requests

# 1. 配置参数(同GET,signature从后台获取)
appid = "your_app_id"
signature = "your_signature_from_backend"  # 后台获取的签名
token = "your_user_token"  # 可选
user = "123456"  # 需查询的用户账号

# 2. 构造POST参数(处理可选参数)
params = {
    "appid": appid,
    "signature": signature,
    "user": user
}
if token:
    params["token"] = token

# 3. 发起POST请求
url = "https://nobase.cn/api/user/data"
try:
    response = requests.post(url, data=params, timeout=5)
    response.raise_for_status()
    res_data = response.json()

    if res_data["code"] == 200:
        user_info = res_data["data"]
        print(f"用户昵称:{user_info['nickname']}")
        print(f"经验值:{user_info['exp']},等级:{user_info['grade']}")
        print(f"头像地址:{user_info['icon']}")
        print(f"个人签名:{user_info['signature']}")
    else:
        print(f"获取失败:{res_data['data']}")

except requests.exceptions.RequestException as e:
    print(f"请求异常:{str(e)}")

注意事项

  1. 签名使用规范signature 需从后台直接获取,与 appid 绑定,无需手动生成;若返回“签名错误”,需核对后台签名是否与传递的值一致,且无多余空格或字符。
  2. 必填参数校验appidsignatureuser 为必填项,缺失任意一项会返回“参数缺失”错误;建议前端先做非空校验,减少无效请求。
  3. token使用逻辑token 仅在后台“应用配置”启用“用户令牌校验”后才需传递,未启用时传递会被忽略;启用后未传或令牌无效会返回“权限不足”。
  4. 业务失败处理:常见失败原因包括“用户不存在”“应用ID无效”“签名不匹配”,需根据 data 字段提示,在前端展示对应友好提示(如“该用户不存在,请核对账号”)。
  5. 用户信息展示:返回的“未绑定”“未佩戴”等默认值,前端可替换为更友好的展示形式(如“未绑定QQ”→“绑定QQ”按钮),提升用户体验。