- 无服务器支持, 0 成本运行
- 自动跟随主仓库更新代码
- 推送至 Telegram 渠道无需代理
此文为小白不友好教程, 请尽量利用搜索引擎解决问题.
如有提出 Issues 的必要, 请尽量提供报错截图, 错误情况, 以及尝试过的解决方案.
提问前推荐阅读: 提问的智慧
-
创建一个新的公开 (推荐) 或私人仓库, 如
aliyun-signin-action
推荐使用公开仓库, 按照 GitHub 计费说明, 公开仓库的 Actions 不计入使用时间
不需要 Fork 本仓库, 采用
uses
的方式引用本仓库 Action, 实现自动更新* -
在仓库中新建文件
.github/workflows/signin.yml
用于配置 Github Action 的工作流
自动更新指的是自动使用主仓库最新发行版本代码运行, 但无法修改 action 配置文件. 涉及更新传入参数等配置的更新, 仍需手动操作 (如 v1.3.4 更新).
如未及时更新 action 配置, 不会影响已存在的功能, 但可能会导致新功能无法使用.
-
创建
.github/workflows/signin.yml
文件, 写入 Action 配置, 以下是参考配置name: Aliyun Signin on: schedule: # 每天国际时间 17:20 运行一次, 中国时间 01:20 - cron: '20 17 * * *' workflow_dispatch: jobs: signin: name: Aliyun Signin runs-on: ubuntu-latest steps: - uses: ImYrS/aliyun-auto-signin@main with: REFRESH_TOKENS: ${{ secrets.REFRESH_TOKENS }} GP_TOKEN: ${{ secrets.GP_TOKEN}} PUSH_TYPES: '' SERVERCHAN_SEND_KEY: ${{ secrets.SERVERCHAN_SEND_KEY }} TELEGRAM_BOT_TOKEN: ${{ secrets.TELEGRAM_BOT_TOKEN }} TELEGRAM_CHAT_ID: ${{ secrets.TELEGRAM_CHAT_ID }} PUSHPLUS_TOKEN: ${{ secrets.PUSHPLUS_TOKEN }} SMTP_HOST: ${{ secrets.SMTP_HOST }} SMTP_PORT: ${{ secrets.SMTP_PORT }} SMTP_TLS: ${{ secrets.SMTP_TLS }} SMTP_USER: ${{ secrets.SMTP_USER }} SMTP_PASSWORD: ${{ secrets.SMTP_PASSWORD }} SMTP_SENDER: ${{ secrets.SMTP_SENDER }} SMTP_RECEIVER: ${{ secrets.SMTP_RECEIVER }} FEISHU_WEBHOOK: ${{ secrets.FEISHU_WEBHOOK }}
-
按需填写上方配置中的 PUSH_TYPES 参数, 以启用推送功能. 使用
telegram
和smtp
渠道在 Action 中可能获得更好体验.由于配置复杂或渠道 IP 限制等原因, 部分渠道不支持在 Github Action 中使用, 详见项目首页的推送渠道
在仓库的 Settings
-> Secrets and Variables
-> Actions
中点击 New repository secret
按照推送需要添加 Secrets.
添加时 Name
为下方全大写的配置 key, Secret
为对应的值, 均不需要引号.
REFRESH_TOKENS
[必选] 阿里云盘 refresh token, 多账户使用英文逗号 (,) 分隔GP_TOKEN
[推荐] 在 Action 中运行时更新 refresh token
获取 GP_TOKEN 的方法
点击 GitHub 头像 ->
Settings
(注意与配置 Secrets 不是同一个 Settings) ->Developer settings
->Personal access token
->Tokens(classic)
->Generate new token
权限选择
repo
, 不然不能更新 Secrets. 记住生成的 token, 离开页面后无法查看
SERVERCHAN_SEND_KEY
[可选] Server酱推送渠道的 SendKeyTELEGRAM_BOT_TOKEN
[可选] Telegram Bot TokenTELEGRAM_CHAT_ID
[可选] Telegram 接收推送消息的会话 IDPUSHPLUS_TOKEN
[可选] PushPlus TokenSMTP_HOST
[可选] SMTP 服务器地址SMTP_PORT
[可选] SMTP 服务器端口SMTP_TLS
[可选] SMTP 服务器是否使用 TLSSMTP_USER
[可选] SMTP 服务器用户名SMTP_PASSWORD
[可选] SMTP 服务器密码SMTP_SENDER
[可选] SMTP 发件人邮箱SMTP_RECEIVER
[可选] SMTP 收件人邮箱FEISHU_WEBHOOK
[可选] 飞书 Webhook 地址
这些
Secrets
将加密存储在 GitHub, 无法被直接读取, 但可以在 Action 中使用
正确添加后应显示在 Repository secrets
区域而非 Environment secrets
.
你将有两种方式运行 Action
- 手动运行
- 在仓库的
Actions
->Aliyun Signin
->Run workflow
中点击Run workflow
按钮运行
- 在仓库的
- 定时自动运行
- 上方参考的配置文件中已经配置了定时自动运行, 每天国际时间 17:20 运行一次, 中国时间 01:20, 可根据需要调整
可以在运行的 Action 运行记录中的 Run ImYrS/aliyun-auto-signin@main
末尾查看运行结果
当前 Action Workflow 尚未经过完全验证, 已知存在或可能存在以下问题.
无法自动更新 refresh token, 可能存在运行数天后鉴权失败的情况, 需要手动更新.由 @fuwt 提供解决方案- 不配置推送渠道且代码未报错情况下无法直观检查签到结果, 只能进入 workflow 日志查看.
如果你有更好或其他解决方案, 欢迎 PR
这是本人的第一次 Action 尝试, 如有不足之处, 请多多指教.
异常请反馈至本项目的 Issues.