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

推荐订阅源

博客园 - 三生石上(FineUI控件)
月光博客
月光博客
人人都是产品经理
人人都是产品经理
Google DeepMind News
Google DeepMind News
M
MIT News - Artificial intelligence
Vercel News
Vercel News
MyScale Blog
MyScale Blog
爱范儿
爱范儿
博客园 - 司徒正美
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
IT之家
IT之家
H
Help Net Security
Last Week in AI
Last Week in AI
阮一峰的网络日志
阮一峰的网络日志
酷 壳 – CoolShell
酷 壳 – CoolShell
L
LangChain Blog
罗磊的独立博客
Stack Overflow Blog
Stack Overflow Blog
宝玉的分享
宝玉的分享
博客园 - 聂微东
云风的 BLOG
云风的 BLOG
J
Java Code Geeks
博客园 - 叶小钗
D
Docker

二歪同学

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 失效等问题,可以自行抓包解决。