Appearance
获取用户详细信息接口
用于获取指定用户的详细信息,支持通过GET或POST方式传递参数,需填写应用ID、用户账号等必填信息,可选传递用户令牌(需后台启用),应用签名从后台直接获取。
请求地址 GET / POST
http
https://nobase.cn/api/user/data请求参数
| 参数名 | 类型 | 必选 | 说明 |
|---|---|---|---|
| appid | string | ✅ 是 | 应用ID,从开发者中心获取的应用唯一标识 |
| token | string | ❌ 否 | 用户令牌,需在后台“应用配置”中启用后才需传递 |
| user | string | ✅ 是 | 用户账号,填写需查询的用户唯一账号(如手机号、用户名) |
| signature | string | ✅ 是 | 应用签名,从后台直接获取(无需手动生成,与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
}
}返回数据结构
| 参数名 | 类型 | 说明 |
|---|---|---|
| code | number | 状态码:200=获取成功,400=参数错误/业务失败,500=系统错误 |
| msg | string | 状态描述:success=成功,fail=失败 |
| data | object/string | 响应数据:code=200时为用户信息对象,code≠200时为错误提示字符串 |
| data.username | string | 用户账号(查询用唯一账号) |
| data.nickname | string | 用户昵称 |
| data.qq | string | 用户QQ号(未绑定则返回“未绑定”) |
| data.useremail | string | 用户邮箱(未绑定则返回“未绑定”) |
| data.exp | number | 用户经验值 |
| data.grade | number | 用户等级 |
| data.title | string | 用户头衔(未佩戴则返回“未佩戴”) |
| data.createtime | string | 用户账号创建时间(格式:YYYY-MM-DD HH:MM:SS) |
| data.logintime | string | 用户最后登录时间(格式:YYYY-MM-DD HH:MM:SS) |
| data.viptime | string | VIP有效期(逾期则返回“已逾期(xx时/月)”) |
| data.Continuous | number | 连续签到天数 |
| data.piastrenum | number | 用户余额货币数量 |
| data.likes | number | 用户获赞数量 |
| data.Continuouslogin | number | 连续登录天数 |
| data.signature | string | 用户个人签名(未设置则返回默认提示) |
| data.icon | string | 用户头像URL地址 |
| data.foll | number | 用户关注人数 |
| data.fans | number | 用户粉丝人数 |
| data.forum | number | 用户发布帖子数量 |
| data.sex | number | 用户性别(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)}")注意事项
- 签名使用规范:
signature需从后台直接获取,与appid绑定,无需手动生成;若返回“签名错误”,需核对后台签名是否与传递的值一致,且无多余空格或字符。 - 必填参数校验:
appid、signature、user为必填项,缺失任意一项会返回“参数缺失”错误;建议前端先做非空校验,减少无效请求。 - token使用逻辑:
token仅在后台“应用配置”启用“用户令牌校验”后才需传递,未启用时传递会被忽略;启用后未传或令牌无效会返回“权限不足”。 - 业务失败处理:常见失败原因包括“用户不存在”“应用ID无效”“签名不匹配”,需根据
data字段提示,在前端展示对应友好提示(如“该用户不存在,请核对账号”)。 - 用户信息展示:返回的“未绑定”“未佩戴”等默认值,前端可替换为更友好的展示形式(如“未绑定QQ”→“绑定QQ”按钮),提升用户体验。

