惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

Latest news
Latest news
T
Troy Hunt's Blog
V
Vulnerabilities – Threatpost
L
LINUX DO - 热门话题
cs.CL updates on arXiv.org
cs.CL updates on arXiv.org
Simon Willison's Weblog
Simon Willison's Weblog
V
V2EX
博客园 - 司徒正美
B
Blog RSS Feed
AWS News Blog
AWS News Blog
MyScale Blog
MyScale Blog
Scott Helme
Scott Helme
Cisco Talos Blog
Cisco Talos Blog
Last Week in AI
Last Week in AI
NISL@THU
NISL@THU
博客园 - Franky
P
Proofpoint News Feed
博客园_首页
C
CERT Recently Published Vulnerability Notes
雷峰网
雷峰网
S
Schneier on Security
P
Proofpoint News Feed
Hugging Face - Blog
Hugging Face - Blog
G
GRAHAM CLULEY
博客园 - 三生石上(FineUI控件)
月光博客
月光博客
WordPress大学
WordPress大学
The Hacker News
The Hacker News
T
Threatpost
阮一峰的网络日志
阮一峰的网络日志
A
Arctic Wolf
Microsoft Azure Blog
Microsoft Azure Blog
T
The Exploit Database - CXSecurity.com
Engineering at Meta
Engineering at Meta
罗磊的独立博客
T
The Blog of Author Tim Ferriss
D
Darknet – Hacking Tools, Hacker News & Cyber Security
I
Intezer
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
K
Kaspersky official blog
SecWiki News
SecWiki News
云风的 BLOG
云风的 BLOG
美团技术团队
C
Cybersecurity and Infrastructure Security Agency CISA
博客园 - 【当耐特】
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
Security Latest
Security Latest
C
Cyber Attacks, Cyber Crime and Cyber Security
B
Blog
S
Security Affairs

二歪同学

Twikoo丨 邮件模板美化制作教程 - 二歪同学 浸式监控!NAS UPS 接入 Grafana,实现数据全屏可视化 - 二歪同学 MinIO to RustFS 丨一键脚本实现将对象从 MinIO 迁移到 RustFS 丝滑迁移 1Password 家庭组使用全攻略:常见问题与正确操作指南 - 二歪同学 Halo 插件 Umami 跨域报错解解决方案 - 二歪同学 实用教程丨通过爱快虚拟机安装完整版Home Assistant - 二歪同学 Lsky Pro 丨通过 docker 部署兰空图床开源版 + MinIO 再次上云丨 NAS 数据异地容灾备份解决方案 - 二歪同学 Better History丨浏览历史管理器汉化 - 二歪同学 PHP报错 Call to undefined function ImageCreate() 解决方案 Portainer 无法读取本地容器解决方案 - 二歪同学 绿联私有云NAS开启SSH方法 - 二歪同学 IOS微信自签注意事项及聊天记录安全备份 - 二歪同学 腾讯翻译丨谷歌翻译的替代方案,近乎完美! - 二歪同学 ATV-Bilibili-demo |在 Apple tv 上面看B站(小白/白嫖版) 黑苹果黑苹果系统更新失败解决方案! - 二歪同学 黑群晖/群晖 通过反代理实现 SSL 配置以及通过单端口外网访问所有项目 - 二歪同学 NginxProxyManager 可视化的反代理管理工具部署及操作技巧 - 二歪同学 Transmission 保种错误解决方案 - 二歪同学
九号APP免折腾脚本教程,轻松搞定每日自动签到!(附开源代码) - 二歪同学
二歪同学 · 2025-08-21 · via 二歪同学

最近搞了一辆九号电动车(本人非精神小伙),APP里面有个签到功能,每天手动签到怪麻烦的,于是从 GitHub 上翻了一个签到脚本,修改了一下,分享出来供大家使用。

🔗 项目地址:https://github.com/waistu/Ninebot


实现功能

  • 💻 本地运行
  • ✅ 自动签到 (GitHub Actions & 青龙面板)
  • 👋 单账号/多账号签到
  • 🔔 Bark 通知推送

如果你有自己的服务器,推荐使用青龙面板进行运行。当然,也可以 GitHub Actions 自动运行,需要 GitHub 访问条件以及 GitHub 账号。


环境变量参数

变量名 值示例 / 说明 必填 备注
NINEBOT_DEVICE_ID 1234567890(你的设备唯一标识) 单账号时填写单个 deviceId
NINEBOT_AUTHORIZATION Bearer xyz789...(你的授权令牌) 单账号时填写单个 authorization
NINEBOT_ACCOUNTS [{"deviceId":"123","authorization":"Bearer xyz","name":"账号1"},{"deviceId":"456","authorization":"Bearer abc","name":"账号2"}] 多账号时使用,JSON 数组格式(需压缩为单行,无换行符)
BARK_KEY xxxxxxxxxxxxxxxx(你的 BARK 推送设备密钥) 选填,用于接收签到结果通知(需配合 BARK 应用)
BARK_URL https://api.day.app(默认值) 选填,自定义 BARK 服务器地址(默认官方地址)
BARK_GROUP 九号签到(推送分组名称) 选填,推送消息的分组标签
BARK_ICON https://example.com/icon.png(图标 URL) 选填,推送消息显示的图标
BARK_SOUND chime(铃声名称) 选填,推送消息的铃声(默认 bell,支持 chimealarm 等)

九号出行 APP 抓包

脚本签到需要用账号的设备 ID(DEVICE_ID)和授权令牌(AUTHORIZATION),通过抓包可以获取,这里以 IOS 为例(安卓抓包自行尝试)。

  1. 首先,确保手机已安装九号出行 APP,并登录自己的账号。
  2. 在 App Store 搜索下载 Stream ,根据提示配置CA证书,然后在手机中进行证书信任设置。

IMG-61ABB21674FC63E60A3E40185AD38F3B.webp

  1. 打开 Stream 工具,点击开始抓包,然后切换至九号 APP,打开签到页面,之后回到抓包工具,结束抓包。

IMG-D0C023BE8637EAE98F79A35344F425D9.webp

  1. 在抓包历史中找到刚抓包的数据,搜索 api/user-sign/v2/sign 字段,点击搜索结果中的第一个 POST 请求数据,打开切换至请求头部分,下面的 Authorization 和 device_id 就是后面需要用的授权令牌和设备 ID。

本地运行

  1. 本地终端克隆仓库
git clone https://github.com/waistu/Ninebot.git
  1. 安装依赖
npm install
  1. 设置环境变量(将.env.example 重命名为.env)
# 九号APP相关(必填)

NINEBOT_DEVICE_ID="你的设备ID"
NINEBOT_AUTHORIZATION="你的授权令牌"
NINEBOT_NAME="你自定义账户名" # 可选
# Bark通知相关(可选,需要则配置)
BARK_KEY=你的Bark密钥
BARK_URL=https://api.day.app # 默认使用 APP 自带服务器
# 以下为Bark可选参数(根据需要添加)
# BARK_GROUP=九号签到通知 # 通知分组
# BARK_ICON=https://xxx.png # 通知图标URL
# BARK_SOUND=bell # 通知铃声
  1. 运行脚本
npm start

使用青龙面板运行脚本

在青龙面板的订阅管理中,选择创建订阅,链接填写 https://github.com/waistu/Ninebot.git ,名称自定义,定时规则可随便填写(例如每天早上七点运行一次 0 7 * * * ),拉取完脚本禁用即可。

IMG-80280DF5455F741A512D57FF643CC436.webp

拉取完成后,在定时任务这里会出现对应的脚本内容,可以自行修改定时规则和名称。

IMG-DA81514FD1A1ABB9AD02BE32998D9591.webp

接下来,在依赖管理这里安装NodeJs 依赖,依次添加 axios、moment、dotenv 即可。

IMG-65CB7852677D3F8AB5548DC6724FA97F.webp

如果下载比较慢,可以在 设置 > 依赖设置 > Node 软件包镜像源 添加加速镜像源。

🔗 Node 软件包镜像源:https://registry.npmmirror.com

最后在环境变量这里填写相关的环境变量即可,NINEBOT_DEVICE_IDNINEBOT_AUTHORIZATION 就是前面抓包获取的参数,为必填项,其他变量主要为 Bark 通知推送,可以按需选择。

IMG-2F763F948B4C8DECE5839A873B060AD8.webp

配置完毕后,可以在定时任务那里手动运行一次,检查日志内容,看是否能正常运行。

手机端 Bark 通知效果如下:

IMG-B60D4E7E5409325B63A4BEB7118A8AA6.webp


最后说明

目前签到貌似送的 N 币非常少了,想跑的可以尝试下,后续不排除 API 失效等问题,可以自行抓包解决。