无需服务器实现阿里云盘自动签到并推送消息
本帖最后由 陈宇轩 于 2023-3-14 10:31 编辑经道友@无用户名 好友提醒,我阿里的refresh_token获取地址发错了。我重发了。抱歉啊。
经道友@QingTianGG指点迷津,GP_TOKEN获取的时候,一定要勾选下面的repo选项。
哦弥陀佛,小僧日夜参禅,终于悟透,故而分享给各位施主,且小僧发现本坛中没有阿里云签到的帖子,故而坚定不移的分享给大家
## 概述
通过github的action功能,实现0服务器每日自动签到 并 利用各种消息通知功能推送,
准备工作/工具:
```
1、github账号
2、push-token
```
### github配置
1,创建一个新的仓库,命名`aliyun-signin-action`
> 不需要 Fork 本仓库, 采用 `uses` 的方式引用本仓库 Action, 实现自动更新
2,在仓库中新建文件 `.github/workflows/signin.yml`
> 用于配置 Github 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 }}
```
根据自身需求填写`secrets`,添加方式如下:
在仓库的 `Settings` -> `Secrets and Variables` -> `Actions` 中点击 `New repository secret` 按照推送需要添加 Secrets.
添加时 `Name` 为下方全大写的配置 key, `Secret` 为对应的值, 均不需要引号.
如果想推送消息,根据自己想用的推送方式,填写在`PUSH_TYPES: ''`这里的单引号内(如`TG`就填`TELEGRAM`,`server酱`就填`SERVERCHAN`,`邮箱`就填`SMTP`,`PUSHPLUS`就填写`PUSHPLUS`)
这里我建议用pushplus(https://www.pushplus.plus/)
注册之后发送消息那里获取token,下面有详细说明每个参数的意思:
- `REFRESH_TOKENS` [必填]阿里云盘 refresh token, 多账户使用英文逗号 (,) 分隔*
- `GP_TOKEN` [必填]在 Action 中运行时更新 refresh token
- `SERVERCHAN_SEND_KEY` [可选] *Server酱推送渠道的 SendKey*
- `TELEGRAM_BOT_TOKEN` [可选] *Telegram Bot Token*
- `TELEGRAM_CHAT_ID` [可选] *Telegram 接收推送消息的会话 ID*
- `PUSHPLUS_TOKEN` [可选] *PushPlus Token*
- `SMTP_HOST` [可选] *SMTP 服务器地址*
- `SMTP_PORT` [可选] *SMTP 服务器端口*
- `SMTP_TLS` [可选] *SMTP 服务器是否使用 TLS*
- `SMTP_USER` [可选] *SMTP 服务器用户名*
- `SMTP_PASSWORD` [可选] *SMTP 服务器密码*
- `SMTP_SENDER` [可选] *SMTP 发件人邮箱*
- `SMTP_RECEIVER` [可选] *SMTP 收件人邮箱*
> 这些 `Secrets` 将加密存储在 GitHub, 无法被直接读取, 但可以在 Action 中使用
正确添加后应显示在 `Repository secrets` 区域而非 `Environment secrets`.
我的`secrets`如图
获取REFRESH_TOKENS
[点击获取](https://alist.nn.ci/zh/guide/drivers/aliyundrive.html)
获取GP_TOKEN
> 点击 GitHub 头像 -> `Settings` (注意与配置 Secrets 不是同一个 Settings) -> `Developer settings` -> `Personal access token` -> `Tokens(classic)` -> `Generate new token`
> 权限选择 `repo`, 不然不能更新 Secrets. <u>记住生成的 token, 离开页面后无法查看</u>
获取PUSHPLUS_TOKEN
上述已说明,如下图,复制即可
这里贴上我的`signin.yml`配置:
```
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: 'pushplus'
PUSHPLUS_TOKEN: ${{ secrets.PUSHPLUS_TOKEN }}
```
我用的pushplus推送,故只用了这几个secret。
### 运行action
方式有两种:
- 手动运行
- 在仓库的 `Actions` -> `Aliyun Signin` -> `Run workflow` 中点击 `Run workflow` 按钮运行(4是查看结果)
- 定时自动运行
- 上方参考的配置文件中已经配置了定时自动运行, 每天国际时间 17:20 运行一次, 中国时间 01:20, 可根据需要调整
这里注意下github的action配额,别乱用,不过2000min/mouth也够用,如下图
### 查看结果
运行完后点进去即可查看原因,只要出现签到成功即可,图中的这种错误作者告知貌似还没避免,等github原作者通知
这里更新坛友指点之后的成功运行结果:(更新时间:2023年3月14日 10:31:02)
over..
感谢原作者开源分享,源码如下:
(https://github.com/ImYrS/aliyun-auto-signin/blob/main/How-To-Use-Action.md)
@陈宇轩 感谢花时间写详细教程, 已经链接到 GitHub https://github.com/ImYrS/aliyun-auto-signin/blob/main/How-To-Use-Action.md
同时今天更新了 v1.4.4 https://github.com/ImYrS/aliyun-auto-signin/releases/tag/v1.4.4 可以自动领取阿里云盘两周年活动奖励, 欢迎体验哈. sas141 发表于 2023-4-10 23:31
楼主楼主 ,psuhplus默认推送方式是微信,请问怎么改成用邮箱?
如果想推送消息,根据自己想用的推送方式,填写在PUSH_TYPES: ''这里的单引号内(如TG就填TELEGRAM,server酱就填SERVERCHAN,邮箱就填SMTP,PUSHPLUS就填写PUSHPLUS)
SMTP_HOST [可选] SMTP 服务器地址
SMTP_PORT [可选] SMTP 服务器端口
SMTP_TLS [可选] SMTP 服务器是否使用 TLS
SMTP_USER [可选] SMTP 服务器用户名
SMTP_PASSWORD [可选] SMTP 服务器密码
SMTP_SENDER [可选] SMTP 发件人邮箱
SMTP_RECEIVER [可选] SMTP 收件人邮箱 运行出错,获取 access token 失败, 可能是 refresh token 无效. 跟着一步一步做,成功 感谢大佬,那个在单引号中填写内容的地方我理解成了添加secrets,应该是在code中修改:lol 超级省电模式 发表于 2023-3-30 17:20
手动运行成功一次就行了 是吗?
手动运行一次,就是看看有没有问题啊。没有问题,以后自动cn时间凌晨2点左右运行。 ImYrS 发表于 2023-3-22 11:29
@陈宇轩 感谢花时间写详细教程, 已经链接到 GitHub https://github.com/ImYrS/aliyun-auto-signin/blob/mai ...
哇。大佬现身啦。。撒花~~~~{:1_899:} zbr878458173 发表于 2023-3-23 06:43
老哥,推送功能去掉是不是不影响签到功能?如果不影响的话我就去了
不影响的。。。你不填pushplus的token就行。。 本帖最后由 QingTianGG 于 2023-3-14 09:54 编辑
已成功完整运行。
你的报错是因为创建错了Personal access tokens (classic)
需要创建Generate new token (classic) ,然后授予 repo 权限。
沙发,试试先看看 谢谢分享 打算试试看
又是一个技术活,之前我根据github搞了一个学习通自动签到的{:17_1068:} 感谢分享这就去试试 值得参考的文章 大佬啊,值得学习 无用户名 发表于 2023-3-13 22:48
运行出错,获取 access token 失败, 可能是 refresh token 无效.
哪里出错?是获取阿里云盘的refresh_token出错吗? 52shuqi 发表于 2023-3-13 22:21
又是一个技术活,之前我根据github搞了一个学习通自动签到的
都是爱折腾惹的祸{:301_994:}