|
# discuz-daily-interaction
## 📋 技能描述
Discuz! X5 论坛每日自动互动技能。支持自动登录、浏览帖子、点赞、收藏、评论、发帖等日常互动任务。账号从 ~/.openclaw/workspace/docs/accounts.json 加载,每天自动轮换一个账号。使用 Discuz! X5 官方 RESTful API,无需网页模拟。触发词:"每日互动"、"discuz互动"、"论坛签到"、"自动点赞"、"自动评论"、"自动发帖"、"账号轮换"、"discuz daily"、"论坛活跃"、"批量互动"。
## 📝 详细介绍
# Discuz! 每日互动
## 概述
使用 Discuz! X5 官方 RESTful API 实现论坛每日自动互动。支持自动轮换账号完成浏览、点赞、收藏、评论、发帖等任务,提升论坛活跃度。
**核心特性:**
- 账号自动轮换(每天切换不同账号)
- 支持 AI 智能生成评论和帖子内容(DeepSeek)
- 完整的互动流程:浏览 → 点赞 → 收藏 → 评论 → 发帖
- 频率限制保护(16秒间隔)
## 前置条件
### 1. 环境变量配置
```bash
export DISCUZ_BASE_URL="https://your-forum.com"
export DISCUZ_APPID="YOUR_APPID"
export DISCUZ_SECRET="YOUR_SECRET"
# 可选:AI 内容生成
export DEEPSEEK_API_KEY="sk-your-api-key"
```
### 2. 账号数据文件
账号从技能目录内的 `scripts/accounts.json` 加载,格式:
```json
{
"password": "统一密码",
"accounts": ["user1", "user2", "user3"],
"total": 3
}
```
**无需注册新账号**,直接使用现有账号列表。账号数据文件已包含在技能目录中。
### 3. Discuz! 后台配置
管理员需在后台开通 RESTful API:
- 后台 → 应用 → RESTful API → 添加应用
- 获取 `APPID` 和 `APP Secret`
- 授权接口:发帖、回帖、查看帖子、点赞、收藏
## 使用方法
### 每日互动(完整流程)
```bash
cd ~/.openclaw/workspace/skills/discuz-daily-interaction/scripts
node daily-interaction.js
```
### 带 AI 生成内容
```bash
node daily-interaction.js --ai
```
### 仅使用模板(禁用 AI)
```bash
node daily-interaction.js --no-ai
```
### 自定义互动数量
```bash
# 点赞 10 个,评论 3 条
node daily-interaction.js --likes 10 --comments 3
```
### 账号管理工具
```bash
# 查看账号列表和今日账号
node tools.js list
# 查看今日使用的账号
node tools.js today
# 手动切换今日账号(编号从1开始)
node tools.js set 10
```
## 互动流程
每日任务执行顺序:
| 步骤 | 动作 | 目标数量 | 间隔 |
|------|------|---------|------|
| 1 | 浏览帖子 | 全量获取 | - |
| 2 | 点赞 | 5 个 | 16 秒 |
| 3 | 收藏 | 5 个 | 16 秒 |
| 4 | 评论 | 5 条 | 16 秒 |
| 5 | 发帖 | 1 篇 | 20 秒 |
## 账号轮换机制
1. 从 `accounts.json` 按顺序轮换
2. 每天(按日期)自动切换到下一个账号
3. 轮换状态保存在 `.rotation-state.json`
4. 到达末尾后循环回到第一个账号
## AI 内容生成
当配置 `DEEPSEEK_API_KEY` 时:
- 评论使用 AI 根据帖子内容生成针对性回复
- 发帖使用内置模板(暂不支持 AI 生成标题)
- AI 不可用时自动降级到模板回复
## 脚本结构
```
scripts/
├── discuz-sdk.js # API SDK(签名、请求、业务接口)
├── account-manager.js # 账号加载与轮换逻辑
├── daily-interaction.js # 主脚本(每日互动流程)
└── tools.js # 辅助工具(查看/切换账号)
```
## 常见问题
| 问题 | 原因 | 解决 |
|------|------|------|
| 登录失败 | 密码错误或账号被封 | 检查 accounts.json 中的 password |
| Token 失效 | Token 过期 | 脚本会自动刷新 Token |
| 操作太频繁 | post_flood_ctrl | 已内置 16 秒间隔保护 |
| AI 生成失败 | API Key 无效 | 检查 DEEPSEEK_API_KEY |
| 发帖待审核 | 新用户限制 | 正常现象,等待管理员审核 |
## 定时任务配置
### crontab(Linux/Mac)
```bash
# 每天早上 9 点执行
crontab -e
0 9 * * * cd ~/.openclaw/workspace/skills/discuz-daily-interaction/scripts && node daily-interaction.js >> daily.log 2>&1
```
### systemd 定时器
见 `references/cron-setup.md` 完整配置。
## 注意事项
1. **所有账号使用统一密码**(accounts.json 中的 password 字段)
2. **频率限制**:两次操作间隔 ≥ 15 秒,脚本使用 16 秒安全间隔
3. **新用户审核**:部分论坛新账号发帖/回帖需管理员审核
4. **响应结构**:成功标识在 `data.msg.message` 中,如 `post_reply_succeed`
5. **安全**:不要在代码中硬编码密钥,使用环境变量
## 技术参考
### 签名算法
```
nonce = UUID()
timestamp = Unix时间戳(秒)
sign = Base64(SHA256(nonce + timestamp + secret))
```
### 请求格式
```javascript
headers: { appid, nonce, t: timestamp, sign, token }
body: { _REQUEST: JSON.stringify({ POST: { /* 业务参数 */ } }) }
```
### 成功标识
| 接口 | 成功 message |
|------|-------------|
| 发帖 | `post_newthread_succeed` / `post_newthread_mod_succeed` |
| 回帖 | `post_reply_succeed` / `post_reply_mod_succeed` |
| 点赞 | `recommend_succeed` |
| 收藏 | `favorite_do_success` / `favorite_repeat` |
## 🚀 安装方式
此技能为**付费技能**,仅支持通过积分购买后下载安装。
不支持对话安装、命令行安装等其他方式。
**下载安装**
🛒 [点击购买并下载 discuz-daily-interaction](https://www.xianshe.com/plugin.php?id=hl_skillhub&mod=buy&skill_id=24938)
## 💰 收费方式
💎 **积分购买** - 需要支付 19 积分
## 🔗 前往安装
**[👉 点击前往技能安装页面](https://www.xianshe.com/plugin.php?id=hl_skillhub&mod=detail&slug=discuz-daily-interaction)**
|