Skip to content

HXwHSJS/locyanfrp-auto-sign

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

24 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

LoCyanFrp Auto Sign (Windows + OAuth)

一个对 LoCyanFrp 的 Windows 自动签到项目。

功能

  • OAuth access_token
  • GET /sign -> POST /sign
  • 主备 API 自动切换
  • 401 后自动重取 token
  • Windows 单实例锁,避免并发运行
  • 成功、失败桌面右上角提示( + 常驻错误窗口)
  • logs/auto_sign.loglast_status.json

目录

locyanfrp-auto-sign/
├─ auto_sign.py
├─ get_refresh_token.py
├─ config.example.json
├─ requirements.txt
├─ .gitignore
└─ README.md

环境要求

  • Windows 10 / 11
  • 项目编写环境为Python 3.9+
  • 已在 LoCyanFrp 网站创建 OAuth 应用

第 1 步:准备 OAuth 应用

在 LoCyanFrp 网站准备一个 OAuth 应用,确认自己的app_idimage

建议申请的最小权限:

  • Sign.Read
  • Sign.Action.Sign

第 2 步:克隆项目(或者下载zip文件)

git clone https://github.com/HXwHSJS/locyanfrp-auto-sign.git
cd locyanfrp-auto-sign
image

第 3 步:安装依赖

-本项目只依赖一个第三方库:requests.

py -m pip install -r requirements.txt

-你可以先检查是否已安装

py -c "import requests; print(requests.__version__)" 
image

第 4 步:生成本地配置文件

复制示例配置:

copy config.example.json config.json
image

然后编辑 config.json

先填好app_id

{
  "app_id": "你的应用ID",
  "refresh_token": ""
}
image

refresh_token 先留空,下一步会自动写入。

第 5 步:获取一次性授权 code

浏览器打开下面的链接,把 你的应用ID 改成你的 app_id

https://dashboard.locyanfrp.cn/auth/oauth/authorize?client_id=你的应用ID&scopes=Sign.Read,Sign.Action.Sign&mode=code
image

授权成功后,页面会给你一个一次性 code

image

第 6 步:把 code 换成 refresh_token

运行:

py get_refresh_token.py

按提示粘贴 code

image

成功后,脚本会自动把 refresh_token 写进 config.jsonimage

第 7 步:手动测试

运行:

py auto_sign.py

正常情况下,你会看到以下结果之一:

  • 今日已签到,无需重复操作
  • 签到成功
  • 明确的错误信息

示例: image

日志文件在:

logs\auto_sign.log
image image

状态文件在:

last_status.json

注意:状态文件仅记录最后一次签到日志,log文件记录完整日志。

第 8 步:测试提醒功能

成功提醒

py auto_sign.py --test-success
image

失败提醒

py auto_sign.py --test-failure
image image

你应该会看到(右上角):

  • 成功:绿色短提醒
  • 失败:红色长提醒与其下方常驻错误窗口

第 9 步:配置 Windows 计划任务

image

推荐配置:

常规

  • 名称:LoCyanFrp Auto Sign(建议选项,随意)
  • 仅当用户登录时运行
  • 可选:使用最高权限运行
image

触发器

  • 1.新建
  • 2.按预定计划
  • 3.每天(根据自己时段)
  • 4.勾选“已启用”
image

操作

程序或脚本:

你的 python.exe 绝对路径

例如:

H:\Tools\Python\3.9.8\python.exe

添加参数:

auto_sign.py

起始于:

项目目录绝对路径

例如:

H:\LocyanSign
image

条件

如果是笔记本,建议取消勾选“只有在计算机使用交流电源时才启动此任务” image

设置

  • 允许按需运行任务
  • 如果过了计划开始时间,立即启动任务
  • 如果任务失败:30 分钟后重试 1 次
  • 如果任务已经在运行:请勿启动新实例
  • image

配置项说明

打开 config.json,常见字段如下:

traffic_unit签到单位(LocyanFrp牛逼)

"traffic_unit": "GB"

用于提示文案展示单位。

成功/失败提醒开关

"notify_on_success": true, 
"notify_on_already_signed": false,
"notify_on_failure": true
  • notify_on_success:签到成功是否提示
  • notify_on_already_signed:今天已签到是否提示
  • notify_on_failure:失败是否提示

弹窗位置

"popup_right_margin": 20,
"popup_top": 40,
"popup_stack_gap": 10
  • popup_right_margin:距离右边的边距
  • popup_top:距离顶部的边距
  • popup_stack_gap:红提示与常驻窗口之间的间距

建议

首次部署完成后,先手动运行一次,再配置计划任务。

  • 这是第三方项目,不是 LoCyanFrp 官方项目
  • 用户需要自行承担使用风险(API都写了,可能不会有事?LocyanFrp牛逼)
  • 请勿把自己的 token 上传到 GitHub

常见问题

1. 执行 py -m pip install -r requirements.txt 时提示 SSL EOF / 无法连接 PyPI

这通常是本机网络、代理、证书或 PyPI 连接问题,不是本项目脚本本身的问题。

你可以先执行:

py -c "import requests; print(requests.__version__)"

如果已经安装了 requests,并且版本不低于 2.15.0,可以直接跳过依赖安装,继续执行后续步骤。

About

基于 OAuth 的 LoCyanFrp Windows 自动签到项目。

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages