Skip to content

论坛评论删除接口

用于删除指定帖子下的某条评论,支持动态身份验证(令牌启用时通过token验证,令牌未启用时通过user+pass验证)。接口严格控制删除权限:版主可删除任意评论,非版主仅能删除自己发布的评论,且不可删除审核中的评论。

请求地址 GET / POST

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

请求参数

参数名位置类型必选说明
appidquerystring✅ 是应用唯一标识,从开发者中心获取
uidquerystring✅ 是板块ID,评论所属板块的唯一标识
pidquerystring✅ 是帖子ID,评论所属帖子的唯一标识
idquerystring✅ 是评论ID,需删除的目标评论唯一标识
signaturequerystring✅ 是应用签名,与后台配置一致,用于验证请求合法性
tokenquerystring条件必选用户令牌,仅令牌启用时需传递,需绑定当前应用和开发者
userquerystring条件必选用户账号,仅令牌未启用时需传递
passquerystring条件必选用户密码,仅令牌未启用时需传递

返回示例

成功响应(删除成功)

json
{
  "code": 200,
  "msg": "success",
  "data": "操作成功"
}

失败响应(参数问题)

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

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

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

失败响应(权限/业务限制)

json
{
  "code": 405,
  "msg": "fail",
  "data": "权限不足:您无法删除他人评论!"
}
json
{
  "code": 404,
  "msg": "fail",
  "data": "评论审核中!"
}
json
{
  "code": 405,
  "msg": "fail",
  "data": "账号长度需在6-18字符之间"
}

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

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

返回数据结构

参数名类型说明
codenumber状态码:200=删除成功;204=参数缺失/错误;400=应用配置错误;401=token无效;402=签名失败;404=资源不存在/状态异常(如评论不存在、账号状态异常);405=权限不足/业务限制(如无删除权限、账号长度不符);407=板块/帖子/评论不存在
msgstring状态描述:success=成功,fail=失败
datastring响应数据:操作结果提示或错误原因,如“操作成功”“权限不足:您无法删除他人评论!”

代码示例

javascript
// 令牌启用时删除评论
const params = new URLSearchParams({
  appid: "your_app_id",
  uid: "板块ID",
  pid: "帖子ID",
  id: "需删除的评论ID",
  token: "valid_user_token", // 当前用户有效令牌
  signature: "your_signature"
});

fetch("https://nobase.cn/api/bbs/comment_delete", {
  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);
    // 刷新评论列表等后续操作
  } else {
    console.error("删除失败:", res.data);
  }
});
javascript
// 令牌未启用时删除评论
const url = new URL("https://nobase.cn/api/bbs/comment_delete");
url.searchParams.set("appid", "your_app_id");
url.searchParams.set("uid", "板块ID");
url.searchParams.set("pid", "帖子ID");
url.searchParams.set("id", "需删除的评论ID");
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("删除成功:", res.data)
    : console.error("错误:", res.data);
});
python
import requests

# 令牌启用时删除评论
params = {
    "appid": "your_app_id",
    "uid": "板块ID",
    "pid": "帖子ID",
    "id": "需删除的评论ID",
    "token": "valid_user_token",
    "signature": "your_signature"
}

response = requests.post(
    "https://nobase.cn/api/bbs/comment_delete",
    data=params,
    timeout=8
)
res_data = response.json()
print("删除结果:", res_data["data"])
python
import requests

# 令牌未启用时删除评论
params = {
    "appid": "your_app_id",
    "uid": "板块ID",
    "pid": "帖子ID",
    "id": "需删除的评论ID",
    "user": "当前用户账号",
    "pass": "当前用户密码",
    "signature": "your_signature"
}

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

核心逻辑说明

1. 身份验证模式

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

2. 业务校验规则

  • 资源存在性
    - 板块(uid)、帖子(pid)、需删除的评论(id)必须存在,否则返回对应“不存在”错误;
    - 应用配置、开发者账号、当前用户账号、用户配置必须存在且匹配,否则返回对应错误;
  • 状态合法性
    - 开发者账号、当前用户账号需正常启用(状态为“正常”),否则返回“状态异常”;
    - 应用不可处于“停用”或“审核中”状态,帖子不可处于“审核中”状态,否则返回对应提示;
    - 需删除的评论不可处于“审核中”(state=3),否则返回“评论审核中!”;
  • 权限控制
    - 版主权限:从板块配置(ye_plate.moderator)中获取版主列表(格式为#Y:user1#Y:user2...),版主可删除任意评论;
    - 普通用户权限:仅能删除自己发布的评论(评论的username=当前用户名),否则返回“权限不足:您无法删除他人评论!”;
  • VIP校验:开发者VIP未逾期,否则返回逾期提示(如“已逾期(3天),请缴费后重试!”);
  • 账号长度:当前用户账号长度需在配置范围内(最短-最长字符),否则返回长度校验失败。

3. 删除操作逻辑

  • 权限校验优先:先验证当前用户是否有权删除目标评论(版主或评论作者),无权限直接返回错误;
  • 状态检查:确保评论未处于“审核中”,避免删除未审核的内容;
  • 执行删除:通过DELETE语句从ye_post_com表中删除指定id的评论记录;
  • 结果响应:删除成功返回“操作成功”,数据库执行失败返回“操作失败”。

注意事项

  1. 参数关联规范

    • 核心参数需严格匹配层级关系:id(评论ID)属于pid(帖子ID),pid属于uid(板块ID),否则会触发“不存在”错误;
    • 务必确认id对应的评论存在且状态合法(非审核中),避免无效删除请求。
  2. 权限管理

    • 版主列表从板块配置(moderator字段)读取,格式为#Y:用户名1#Y:用户名2,需通过特定格式解析(如explode('#Y:', ...));
    • 普通用户删除评论时,前端可先判断评论作者是否为当前用户,减少无效请求。
  3. 数据一致性

    • 评论删除后,帖子的评论数不会自动减少(需额外接口或逻辑同步),建议删除成功后调用“帖子详情接口”刷新评论数;
    • 若删除的是“回复”类评论,需确保被回复的原评论仍存在(接口已通过id校验确保目标评论存在)。
  4. 安全建议

    • 令牌未启用时,pass以明文传递,生产环境必须使用HTTPS协议;
    • 前端删除操作前建议添加二次确认(如“确定要删除该评论吗?”),防止误操作;
    • 敏感操作(如版主删除他人评论)建议记录操作日志(需额外逻辑支持),便于追溯。
  5. 业务限制

    • 审核中的评论(state=3)不可删除,需等待审核完成(通过或拒绝)后再操作;
    • 帖子处于“审核中”时,其下所有评论不可删除,需等待帖子审核通过。