Skip to content

论坛帖子评论列表接口

用于查询指定帖子下的有效评论列表(状态为“已通过”或其他有效状态的评论),支持分页查询。接口根据应用配置的身份验证模式动态选择验证方式(令牌启用时通过token验证,令牌未启用时通过user+pass验证),仅正常状态的用户可访问。

请求地址 GET / POST

http
https://nobase.cn/api/bbs/post_comment_list

请求参数

参数名位置类型必选说明
appidquerystring✅ 是应用唯一标识,从开发者中心获取
uidquerystring✅ 是板块ID,帖子所属板块的唯一标识
idquerystring✅ 是帖子ID,需查询评论的目标帖子唯一标识
signaturequerystring✅ 是应用签名,与后台配置一致,用于验证请求合法性
pagequerynumber❌ 否页码,默认1(如page=2查询第2页)
limitquerynumber❌ 否每页条数,默认10(如limit=15表示每页15条)
tokenquerystring条件必选用户令牌,仅令牌启用时需传递,需绑定当前应用和开发者
userquerystring条件必选用户账号,仅令牌未启用时需传递
passquerystring条件必选用户密码,仅令牌未启用时需传递

返回示例

成功响应(有评论数据)

json
{
  "code": 200,
  "msg": "success",
  "data": {
    "list": [
      {
        "id": "1001",
        "icon": "https://example.com/avatar/user1.png",
        "username": "user_001",
        "nickname": "普通用户",
        "content": "这个帖子内容很有帮助!",
        "icons": "",
        "usernames": "",
        "nicknames": "",
        "com_time": "2025-06-02 10:15:30"
      },
      {
        "id": "1002",
        "icon": "default_avatar.png",
        "username": "user_002",
        "nickname": "新用户",
        "content": "请问这个问题有后续解决方案吗?",
        "icons": "https://example.com/avatar/reply_user.png",
        "usernames": "user_001",
        "nicknames": "普通用户",
        "com_time": "2025-06-02 11:30:45"
      }
    ],
    "pagination": {
      "total": 28,
      "page": 1,
      "limit": 10,
      "totalPage": 3
    }
  }
}

成功响应(无评论数据)

json
{
  "code": 404,
  "msg": "fail",
  "data": "暂无评论数据"
}

失败响应(参数问题)

json
{
  "code": 204,
  "msg": "fail",
  "data": "接口参数错误:缺少id"
}
json
{
  "code": 204,
  "msg": "fail",
  "data": "接口参数错误:令牌启用需传token!"
}

失败响应(身份验证异常)

json
{
  "code": 401,
  "msg": "fail",
  "data": "token无效或已过期(非当前应用/开发者)!"
}
json
{
  "code": 404,
  "msg": "fail",
  "data": "用户账号密码错误!"
}

失败响应(资源/状态异常)

json
{
  "code": 407,
  "msg": "fail",
  "data": "该帖子不存在!"
}
json
{
  "code": 404,
  "msg": "fail",
  "data": "帖子审核中!"
}
json
{
  "code": 404,
  "msg": "fail",
  "data": "开发者账号已逾期(2天),请缴费后重试!"
}

返回数据结构

参数名类型说明
codenumber状态码:200=查询成功;204=参数缺失/错误;400=应用配置错误;401=token无效;402=签名失败;404=资源不存在/状态异常(如无评论、账号状态异常);407=应用配置/板块/帖子不存在
msgstring状态描述:success=成功,fail=失败
dataobject/string响应数据:成功时含list(评论列表)和pagination(分页信息);失败时为错误提示
data.listarray评论数组,包含评论ID、用户信息(头像、用户名、昵称)、评论内容、回复关联信息、评论时间等
data.paginationobject分页信息:total(有效评论总条数)、page(当前页)、limit(每页条数)、totalPage(总页数)

代码示例

javascript
// 令牌启用时查询帖子评论列表
const params = new URLSearchParams({
  appid: "your_app_id",
  uid: "板块ID",
  id: "目标帖子ID",
  page: 1,
  limit: 10,
  token: "valid_user_token", // 用户有效令牌
  signature: "your_signature"
});

fetch("https://nobase.cn/api/bbs/post_comment_list", {
  method: "POST",
  body: params,
  headers: { "Content-Type": "application/x-www-form-urlencoded" }
})
.then(res => res.json())
.then(res => {
  if (res.code === 200) {
    console.log("评论列表:", res.data.list);
    console.log("分页信息:", res.data.pagination);
  } else {
    console.error("查询失败:", res.data);
  }
});
javascript
// 令牌未启用时查询帖子评论列表
const url = new URL("https://nobase.cn/api/bbs/post_comment_list");
url.searchParams.set("appid", "your_app_id");
url.searchParams.set("uid", "板块ID");
url.searchParams.set("id", "目标帖子ID");
url.searchParams.set("page", 2);
url.searchParams.set("limit", 15);
url.searchParams.set("user", "用户账号");
url.searchParams.set("pass", "用户密码");
url.searchParams.set("signature", "your_signature");

fetch(url.toString())
.then(res => res.json())
.then(res => {
  res.code === 200 
    ? console.log("第2页评论:", res.data.list)
    : console.error("错误:", res.data);
});
python
import requests

# 令牌启用时查询帖子评论
params = {
    "appid": "your_app_id",
    "uid": "板块ID",
    "id": "帖子ID",
    "page": 1,
    "limit": 20,
    "token": "valid_user_token",
    "signature": "your_signature"
}

response = requests.post(
    "https://nobase.cn/api/bbs/post_comment_list",
    data=params,
    timeout=8
)
res_data = response.json()

if res_data["code"] == 200:
    print(f"共{res_data['data']['pagination']['total']}条评论")
    for comment in res_data["data"]["list"]:
        print(f"{comment['nickname']}{comment['content']}")
else:
    print("错误:", res_data["data"])
python
import requests

# 令牌未启用时查询帖子评论
params = {
    "appid": "your_app_id",
    "uid": "板块ID",
    "id": "帖子ID",
    "page": 1,
    "limit": 10,
    "user": "用户账号",
    "pass": "用户密码",
    "signature": "your_signature"
}

response = requests.get(
    "https://nobase.cn/api/bbs/post_comment_list",
    params=params,
    timeout=8
)
print(response.json())

核心逻辑说明

1. 身份验证模式

模式验证流程关键限制
令牌启用1. 校验token存在性;
2. 验证token归属当前应用和开发者;
3. 获取用户信息。
token无效/过期/不匹配当前应用,返回401错误。
令牌未启用1. 校验userpass存在性;
2. 验证用户存在性及密码正确性;
3. 获取用户信息。
用户未注册返回404,密码错误返回404。

2. 业务校验规则

  • 资源存在性
    - 板块(uid)、帖子(id)必须存在,否则返回对应“不存在”错误;
    - 应用配置、开发者账号、应用信息必须存在且匹配,否则返回对应错误;
  • 状态合法性
    - 开发者账号需正常启用(状态为“正常”),否则返回“开发者账号状态异常!”;
    - 应用不可处于“停用”或“审核中”状态,否则返回对应提示;
    - 帖子不可处于“审核中”状态,否则返回“帖子审核中!”;
  • VIP校验:开发者VIP未逾期,否则返回逾期提示(如“已逾期(2天),请缴费后重试!”);
  • 签名校验:请求签名需与后台配置一致,否则返回“用户访问被限制:签名校验失败!”。

3. 分页查询规则

  • 仅查询状态为14的有效评论(具体状态含义需结合业务定义,通常为“已通过”“已回复”等);
  • 支持通过page(页码)和limit(每页条数)控制分页,默认返回第1页、每页10条;
  • 评论按id升序排列(即按发布时间正序);
  • 返回结果包含总条数(total)和总页数(totalPage),方便前端分页渲染。

注意事项

  1. 参数规范

    • id为目标帖子的唯一标识,需与uid(板块ID)对应,确保查询目标正确;
    • 分页参数limit建议不超过50,防止单次请求数据量过大;
    • 两种验证模式的参数不可混用(如令牌启用时无需传user+pass)。
  2. 数据说明

    • icon为用户头像地址,空值或默认值(如default_avatar.png)时需前端展示默认头像;
    • iconsusernamesnicknames用于标识评论的回复对象(如有),空值表示非回复评论;
    • com_time为评论发布时间,格式为YYYY-MM-DD HH:MM:SS
  3. 安全建议

    • 令牌未启用时,pass以明文传递,生产环境必须使用HTTPS协议;
    • 优先使用“令牌启用”模式,减少账号密码暴露风险;
    • 签名(signature)需严格按照后台规则生成,防止请求被篡改。
  4. 业务限制

    • 仅能查询“已通过”或其他有效状态的评论,待审核、已拒绝的评论不会返回;
    • 帖子处于“审核中”时无法查询其评论,需等待审核通过。