陈宇轩 发表于 2023-3-13 22:02

无需服务器实现阿里云盘自动签到并推送消息

本帖最后由 陈宇轩 于 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)

ImYrS 发表于 2023-3-22 11:29

@陈宇轩 感谢花时间写详细教程, 已经链接到 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 可以自动领取阿里云盘两周年活动奖励, 欢迎体验哈.

陈宇轩 发表于 2023-4-11 08:24

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 收件人邮箱

无用户名 发表于 2023-3-13 22:48

运行出错,获取 access token 失败, 可能是 refresh token 无效.

brightsz 发表于 2023-3-14 10:23

跟着一步一步做,成功

Sionis 发表于 2023-3-14 09:55

感谢大佬,那个在单引号中填写内容的地方我理解成了添加secrets,应该是在code中修改:lol

陈宇轩 发表于 2023-3-31 16:01

超级省电模式 发表于 2023-3-30 17:20
手动运行成功一次就行了 是吗?

手动运行一次,就是看看有没有问题啊。没有问题,以后自动cn时间凌晨2点左右运行。

陈宇轩 发表于 2023-3-24 07:28

ImYrS 发表于 2023-3-22 11:29
@陈宇轩 感谢花时间写详细教程, 已经链接到 GitHub https://github.com/ImYrS/aliyun-auto-signin/blob/mai ...

哇。大佬现身啦。。撒花~~~~{:1_899:}

陈宇轩 发表于 2023-3-24 07:30

zbr878458173 发表于 2023-3-23 06:43
老哥,推送功能去掉是不是不影响签到功能?如果不影响的话我就去了

不影响的。。。你不填pushplus的token就行。。

QingTianGG 发表于 2023-3-14 09:53

本帖最后由 QingTianGG 于 2023-3-14 09:54 编辑

已成功完整运行。

你的报错是因为创建错了Personal access tokens (classic)
需要创建Generate new token (classic) ,然后授予 repo 权限。

v12608 发表于 2023-3-13 22:05

沙发,试试先看看

poetlong 发表于 2023-3-13 22:16

谢谢分享 打算试试看

52shuqi 发表于 2023-3-13 22:21

又是一个技术活,之前我根据github搞了一个学习通自动签到的{:17_1068:}

hymnmx 发表于 2023-3-13 22:21

感谢分享这就去试试

BLUE7777777 发表于 2023-3-13 22:30

值得参考的文章

chen360781 发表于 2023-3-13 22:45

大佬啊,值得学习

陈宇轩 发表于 2023-3-13 22:52

无用户名 发表于 2023-3-13 22:48
运行出错,获取 access token 失败, 可能是 refresh token 无效.

哪里出错?是获取阿里云盘的refresh_token出错吗?

陈宇轩 发表于 2023-3-13 22:53

52shuqi 发表于 2023-3-13 22:21
又是一个技术活,之前我根据github搞了一个学习通自动签到的

都是爱折腾惹的祸{:301_994:}
页: [1] 2 3 4 5 6 7 8 9 10
查看完整版本: 无需服务器实现阿里云盘自动签到并推送消息