mit einem Klick
fanqie-checkin
番茄小说自动签到:网页端API签到获取金币奖励
Mit Codex oder Claude installieren Kopieren Sie diesen Prompt, fügen Sie ihn in Codex, Claude oder einen anderen Assistant ein und lassen Sie die Skill-Seite prüfen und installieren.
Menü
番茄小说自动签到:网页端API签到获取金币奖励
Mit Codex oder Claude installieren Kopieren Sie diesen Prompt, fügen Sie ihn in Codex, Claude oder einen anderen Assistant ein und lassen Sie die Skill-Seite prüfen und installieren.
Basierend auf der SOC-Berufsklassifikation
Delegate coding to OpenAI Codex CLI (features, PRs).
Configure, extend, or contribute to Hermes Agent.
Manage multiple remote servers from Hermes via SSH — deploy services, configure firewalls, transfer files, run commands across servers
Clone/create/fork repos; manage remotes, releases.
Parallel data collection from web sources, APIs, and documentation sites
Deploy static sites to GitHub Pages via API — create repo, push, enable Pages, all from CLI
| name | fanqie-checkin |
| description | 番茄小说自动签到:网页端API签到获取金币奖励 |
| version | 1.0.0 |
| author | Hermes Agent |
| license | MIT |
| platforms | ["linux","macos","windows"] |
| metadata | {"hermes":{"tags":["fanqie","novel","checkin","automation","番茄小说","签到"]}} |
通过网页端API实现番茄小说每日自动签到,获取金币奖励。
方式一:浏览器获取(推荐)
sessionidnovel_web_idttwid方式二:使用Playwright自动获取
pip install playwright
playwright install chromium
python get_cookie.py
编辑 ~/.hermes/scripts/fanqie_checkin.py,填入你的Cookie:
COOKIES = {
"sessionid": "你的sessionid",
"novel_web_id": "你的novel_web_id",
"ttwid": "你的ttwid",
}
python ~/.hermes/scripts/fanqie_checkin.py
在青龙面板中添加任务,或使用系统cron:
# 每天早上8点签到
0 8 * * * python3 ~/.hermes/scripts/fanqie_checkin.py
详细API文档见 references/fanqie-api.md
| 项目 | 详情 |
|---|---|
| URL | https://fanqienovel.com/api/reader/sign_in |
| 请求方式 | POST |
| 认证方式 | Cookie |
| Content-Type | application/json |
| 项目 | 详情 |
|---|---|
| URL | https://fanqienovel.com/api/reader/sign_in/query |
| 请求方式 | GET |
| 认证方式 | Cookie |
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36
Referer: https://fanqienovel.com/
Cookie: sessionid=xxx; novel_web_id=xxx; ttwid=xxx
#!/usr/bin/env python3
# -*- coding: utf-8 -*-
"""番茄小说自动签到"""
import requests
import json
from datetime import datetime
# 配置Cookie - 请替换为你的实际Cookie
COOKIES = {
"sessionid": "YOUR_SESSION_ID",
"novel_web_id": "YOUR_NOVEL_WEB_ID",
"ttwid": "YOUR_TTWID",
}
SIGN_URL = "https://fanqienovel.com/api/reader/sign_in"
QUERY_URL = "https://fanqienovel.com/api/reader/sign_in/query"
HEADERS = {
"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) "
"AppleWebKit/537.36 (KHTML, like Gecko) "
"Chrome/120.0.0.0 Safari/537.36",
"Referer": "https://fanqienovel.com/",
"Content-Type": "application/json",
}
def query_sign_status():
"""查询签到状态"""
session = requests.Session()
session.cookies.update(COOKIES)
session.headers.update(HEADERS)
try:
resp = session.get(QUERY_URL)
data = resp.json()
print(f"📋 签到状态查询: {json.dumps(data, ensure_ascii=False, indent=2)}")
return data
except Exception as e:
print(f"❌ 查询失败: {e}")
return None
def sign_in():
"""执行签到"""
session = requests.Session()
session.cookies.update(COOKIES)
session.headers.update(HEADERS)
try:
resp = session.post(SIGN_URL)
data = resp.json()
now = datetime.now().strftime("%Y-%m-%d %H:%M:%S")
if data.get("code") == 0:
reward = data.get("data", {}).get("reward", 0)
print(f"✅ [{now}] 签到成功!获得 {reward} 金币")
else:
msg = data.get("message", "未知错误")
print(f"⚠️ [{now}] 签到结果: {msg}")
return data
except Exception as e:
print(f"❌ [{now}] 签到失败: {e}")
return None
if __name__ == "__main__":
print("🍅 番茄小说自动签到")
print("=" * 40)
# 先查询状态
query_sign_status()
# 执行签到
sign_in()
const axios = require('axios');
const COOKIES = {
sessionid: 'YOUR_SESSION_ID',
novel_web_id: 'YOUR_NOVEL_WEB_ID',
ttwid: 'YOUR_TTWID',
};
const cookieStr = Object.entries(COOKIES)
.map(([k, v]) => `${k}=${v}`)
.join('; ');
const headers = {
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36',
'Referer': 'https://fanqienovel.com/',
'Cookie': cookieStr,
'Content-Type': 'application/json',
};
async function signIn() {
try {
const resp = await axios.post('https://fanqienovel.com/api/reader/sign_in', {}, { headers });
const data = resp.data;
if (data.code === 0) {
console.log(`✅ 签到成功!获得 ${data.data?.reward || 0} 金币`);
} else {
console.log(`⚠️ 签到结果: ${data.message}`);
}
} catch (e) {
console.log(`❌ 签到失败: ${e.message}`);
}
}
signIn();
在青龙面板中添加环境变量:
| 变量名 | 值 |
|---|---|
FANQIE_SESSION_ID | 你的sessionid |
FANQIE_NOVEL_WEB_ID | 你的novel_web_id |
FANQIE_TTWID | 你的ttwid |
# 每天早上8:30签到
30 8 * * * python3 /ql/scripts/fanqie_checkin.py
网页端Cookie和APP端Cookie是两套完全不同的体系,不能混用。
| 类型 | 来源 | 关键字段 | 适用接口 |
|---|---|---|---|
| 网页端Cookie | 浏览器登录 fanqienovel.com | sessionid, novel_web_id, ttwid | 网页端API (fanqienovel.com/api/...) |
| APP端Cookie | 手机APP抓包 | install_id, passport_csrf_token | APP端API (fqnovel.com/reading/...) |
实测结果 (2026-06):
passport_auth_status, passport_mfa_token等)发送到网页端API返回 "请先登录",说明不是真正的登录态sessionid 和 ttwid — 这两个才是网页端真正的登录凭证~/fanqie_checkin.py 使用APP端API,需要 install_id(只能通过抓包获取)网页端签到可行性未验证 — 网页端 /api/reader/sign_in 返回403(WAF拦截),可能需要额外的反爬token。
推荐方案:用APP端API + HttpCanary抓包获取 install_id
& 分隔多个Cookie#!/usr/bin/env python3
"""获取番茄小说Cookie"""
from playwright.sync_api import sync_playwright
import json
def get_cookies():
with sync_playwright() as p:
browser = p.chromium.launch(headless=False)
context = browser.new_context()
page = context.new_page()
page.goto("https://fanqienovel.com/")
print("请在浏览器中登录番茄小说...")
print("登录完成后按回车继续...")
input()
cookies = context.cookies()
cookie_dict = {}
for cookie in cookies:
if cookie['name'] in ['sessionid', 'novel_web_id', 'ttwid']:
cookie_dict[cookie['name']] = cookie['value']
print(f"\n获取到的Cookie:")
print(json.dumps(cookie_dict, indent=2))
browser.close()
return cookie_dict
if __name__ == "__main__":
cookies = get_cookies()
本脚本仅供学习研究使用,请遵守番茄小说的用户协议和使用条款。自动签到属于个人使用范畴,请勿用于商业用途或恶意刷取奖励。