Skip to content

论坛板块查询接口

用于查询论坛应用下的板块列表数据,支持GET和POST两种请求方式。通过appid(应用ID)和signature(应用签名)验证请求合法性,接口会自动校验应用状态、开发者权限等信息,最终返回符合条件的板块详情。

注意

  1. 板块为论坛的核心分类单元,需先在后台完成板块创建与配置;
  2. 接口仅返回当前应用下的板块数据,不同应用的板块数据相互隔离;
  3. 若开发者账号或应用状态异常,将无法获取板块数据。

请求地址 GET / POST

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

请求参数

参数名位置类型必选说明
appidquerystring✅ 是应用ID,从开发者中心获取的应用唯一标识
signaturequerystring✅ 是应用签名,与后台配置一致,用于验证请求合法性

返回示例

成功响应(存在板块数据)

json
{
  "code": 200,
  "msg": "success",
  "data": [
    {
      "uid": "1001",
      "icon": "https://example.com/icons/tech.png",
      "title": "技术讨论区",
      "content": "分享技术经验与问题解答",
      "other": "每周三更新精选内容",
      "moderator": "tech_admin",
      "examine": "1",
      "comment": "1",
      "exampost": "0",
      "commentpost": "1",
      "create_time": "2025-03-10 09:30:00",
      "up_time": "2025-03-15 16:45:00"
    },
    {
      "uid": "1002",
      "icon": "https://example.com/icons/feedback.png",
      "title": "意见反馈区",
      "content": "收集产品建议与使用反馈",
      "other": "",
      "moderator": "feedback_admin",
      "examine": "1",
      "comment": "1",
      "exampost": "1",
      "commentpost": "1",
      "create_time": "2025-03-12 11:20:00",
      "up_time": "2025-03-12 11:20:00"
    }
  ]
}

成功响应(无板块数据)

json
{
  "code": 404,
  "msg": "fail",
  "data": "暂无板块"
}

失败响应(参数缺失)

json
{
  "code": 204,
  "msg": "fail",
  "data": "接口参数错误:缺少signature"
}

失败响应(签名校验失败)

json
{
  "code": 402,
  "msg": "fail",
  "data": "用户访问被限制:签名校验失败!"
}

失败响应(应用/开发者状态异常)

json
{
  "code": 404,
  "msg": "fail",
  "data": "应用审核中!"
}

失败响应(应用配置缺失)

json
{
  "code": 407,
  "msg": "fail",
  "data": "应用配置不存在!"
}

返回数据结构

参数名类型说明
codenumber状态码:200=查询成功;204=参数缺失/错误;402=签名失败;404=无板块数据/应用/开发者状态异常;407=应用配置缺失
msgstring状态描述:success=成功,fail=失败
dataarray/string响应数据:成功时为板块列表数组(含板块详情);失败时为错误提示文本

代码示例

javascript
// 配置参数
const appid = "your_app_id";
const signature = "your_signature";

// 构造请求参数
const params = new URLSearchParams({
  appid,
  signature
});

// 发起POST请求
fetch("https://nobase.cn/api/bbs/plate", {
  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);
    // 渲染板块列表(示例)
    // res.data.forEach(plate => renderPlate(plate));
  } else {
    console.error("加载失败:", res.data);
  }
})
.catch(err => console.error("请求出错:", err));
javascript
// 配置参数
const appid = "your_app_id";
const signature = "your_signature";

// 拼接请求地址
const url = new URL("https://nobase.cn/api/bbs/plate");
url.searchParams.set("appid", appid);
url.searchParams.set("signature", signature);

// 发起GET请求
fetch(url.toString())
.then(res => res.json())
.then(res => {
  if (res.code === 200) {
    console.log("板块列表:", res.data);
  } else {
    console.error("获取失败:", res.data);
  }
})
.catch(err => console.error("请求异常:", err));
python
import requests

# 配置参数
params = {
    "appid": "your_app_id",
    "signature": "your_signature"
}

# 发起POST请求
response = requests.post(
    "https://nobase.cn/api/bbs/plate",
    data=params,
    timeout=8
)
res_data = response.json()

if res_data["code"] == 200:
    print("板块数据:", res_data["data"])
else:
    print("错误信息:", res_data["data"])
python
import requests

# 配置参数
params = {
    "appid": "your_app_id",
    "signature": "your_signature"
}

# 发起GET请求
response = requests.get(
    "https://nobase.cn/api/bbs/plate",
    params=params,
    timeout=8
)
res_data = response.json()

if res_data["code"] == 200:
    print("板块列表:", res_data["data"])
else:
    print("获取失败:", res_data["data"])

注意事项

  1. 参数要求

    • appidsignature为必填项,缺失任一参数会返回“接口参数错误:缺少xxx”;
    • signature需与应用在开发者中心的配置完全一致,建议通过后端生成并传递,避免前端明文暴露。
  2. 校验逻辑说明
    接口会自动验证以下条件,不符合时返回对应错误:

    • 应用合法性:应用不存在返回“应用不存在!”,应用与开发者不匹配返回“应用与开发者不匹配!”;
    • 状态有效性:开发者账号状态异常(非启用)、应用停用(返回停用原因)或审核中(返回“应用审核中!”)会拒绝请求;
    • 权限有效性:开发者VIP逾期会返回“已逾期(X年/X月/X天),请缴费后重试!”,需完成续费才能使用。
  3. 数据使用说明

    • 板块数据中的uid为唯一标识,可用于后续查询板块下的帖子等操作;
    • examinecomment等字段用于标识板块功能状态(如是否需要审核、是否允许评论),具体含义可参考开发者中心文档;
    • 若返回空列表或“暂无板块”,需先在后台创建板块并关联当前应用。
  4. 安全建议

    • 生产环境优先使用POST请求,减少参数在URL中的暴露风险;
    • 定期更新signature并同步至接口调用端,防止签名泄露导致的非法请求;
    • 对返回的敏感数据(如管理员信息),前端需根据业务需求选择性展示。