吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 35878|回复: 1200
收起左侧

[其他原创] 阿里云盘自动每日签到,无需部署,无需服务器(二次创作)

    [复制链接]
qike2391 发表于 2023-7-22 09:52
本帖最后由 qike2391 于 2023-12-10 21:21 编辑

声明本文内容基于原始内容进行了二次修改传播。原始内容来源为[知乎],作者为[小小猪],原始链接为[小小猪:阿里云盘自动每日签到,无需部署,无需服务器]。传播此内容是基于学术研究和学习目的,遵循了适用的版权规定和学术研究的合理使用原则。
执行思路:使用金山文档的每日定时任务,执行阿里云盘签到接口。

  • 代码中的账号为默认配置是给那些不会配置邮箱的人所准备的
  • 我就是知乎二创
  • 请各位不要举报,谢谢


--------------------------------------------------------------------------------------------------------------------------
请查看最新帖子,配置方法更为简单
阿里云盘在线自动签到-无需部署-2023-12-10
https://www.52pojie.cn/thread-1867492-1-1.html
(出处: 吾爱破解论坛)
--------------------------------------------------------------------------------------------------------------------------
token有效期为一个月,每月需要更新一次token

自动签到效果展示:
01.png
1、进入金山文档网页版

金山文档官网:https://www.kdocs.cn/
02.png
2、新建一个空表格,点击【效率】-【高级开发】-【AirScript脚本编辑器】
03.png
04.png
3、点击【创建脚本】-【文档共享脚本】
05.png
4、创建成功后随便命名,我这里命名为:阿里云盘签到
06.png
5、点击【服务】-【添加服务】
07.png
6、将三项服务全部添加
08.png
7、将以下代码复制到编辑器中
[JavaScript] 纯文本查看 复制代码
001
002
003
004
005
006
007
008
009
010
011
012
013
014
015
016
017
018
019
020
021
022
023
024
025
026
027
028
029
030
031
032
033
034
035
036
037
038
039
040
041
042
043
044
045
046
047
048
049
050
051
052
053
054
055
056
057
058
059
060
061
062
063
064
065
066
067
068
069
070
071
072
073
074
075
076
077
078
079
080
081
082
083
084
085
086
087
088
089
090
091
092
093
094
095
096
097
098
099
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
var myDate = new Date(); // 创建一个表示当前时间的 Date 对象
var data_time = myDate.toLocaleDateString(); // 获取当前日期的字符串表示
 
function sleep(d) {
  for (var t = Date.now(); Date.now() - t <= d;); // 使程序暂停执行一段时间
}
 
function log(message) {
  console.log(message); // 打印消息到控制台
  // TODO: 将日志写入文件
}
 
var tokenColumn = "A"; // 设置列号变量为 "A"
var signInColumn = "B"; // 设置列号变量为 "B"
var rewardColumn = "C"; // 设置列号变量为 "C"
var emailColumn = "F"; // 设置列号变量为 "F"
var sendEmailColumn = "G"; // 设置列号变量为 "G"
var resultColumn = "J"; // 设置列号变量为 "J"
 
for (let row = 2; row <= 20; row++) { // 循环遍历从第 2 行到第 20 行的数据
  var refresh_token = Application.Range(tokenColumn + row).Text; // 获取指定单元格的值
  var sflq = Application.Range(signInColumn + row).Text; // 获取指定单元格的值
  var sflqReward = Application.Range(rewardColumn + row).Text; // 获取指定单元格的值
  var jsyx = Application.Range(emailColumn + row).Text; // 获取指定单元格的值
  var sendEmail = Application.Range(sendEmailColumn + row).Text; // 获取指定单元格的值
  var customEmailResult = Application.Range(resultColumn + row).Text; // 获取指定单元格的值
 
  var emailConfigured = Application.Range("J1").Text; // 获取指定单元格的值
  var zdy_host = Application.Range("J2").Text; // 获取指定单元格的值
  var zdy_post = parseInt(Application.Range("J3").Text); // 获取指定单元格的值并转换为整数
  var zdy_username = Application.Range("J4").Text; // 获取指定单元格的值
  var zdy_pasd = Application.Range("J5").Text; // 获取指定单元格的值
 
  if (sflq == "是") { // 如果“是否签到”为“是”
    if (refresh_token != "") { // 如果刷新令牌不为空
      // 发起网络请求-获取token
      let data = HTTP.post("https://auth.aliyundrive.com/v2/account/token",
        JSON.stringify({
          "grant_type": "refresh_token",
          "refresh_token": refresh_token
        })
      );
      data = data.json(); // 将响应数据解析为 JSON 格式
      var access_token = data['access_token']; // 获取访问令牌
      var phone = data["user_name"]; // 获取用户名
 
      if (access_token == undefined) { // 如果访问令牌未定义
        log("单元格【" + tokenColumn + row + "】内的token值错误,程序执行失败,请重新复制正确的token值");
        continue; // 跳过当前行的后续操作
      }
 
      try {
        var access_token2 = 'Bearer ' + access_token; // 构建包含访问令牌的请求头
        // 签到
        let data2 = HTTP.post("https://member.aliyundrive.com/v1/activity/sign_in_list",
          JSON.stringify({ "_rx-s": "mobile" }),
          { headers: { "Authorization": access_token2 } }
        );
        data2 = data2.json(); // 将响应数据解析为 JSON 格式
        var signin_count = data2['result']['signInCount']; // 获取签到次数
 
        var logMessage = "账号:" + phone + " - 签到成功,本月累计签到 " + signin_count + " 天";
        var rewardMessage = "";
 
        if (sflqReward == "是") { // 如果“是否领取奖励”为“是”
          if (sflq == "是") { // 如果“是否签到”为“是”
            try {
              // 领取奖励
              let data3 = HTTP.post(
                "https://member.aliyundrive.com/v1/activity/sign_in_reward?_rx-s=mobile",
                JSON.stringify({ "signInDay": signin_count }),
                { headers: { "Authorization": access_token2 } }
              );
              data3 = data3.json(); // 将响应数据解析为 JSON 格式
              var rewardName = data3["result"]["name"]; // 获取奖励名称
              var rewardDescription = data3["result"]["description"]; // 获取奖励描述
              rewardMessage = " " + rewardName + " - " + rewardDescription;
            } catch (error) {
              if (error.response && error.response.data && error.response.data.error) {
                var errorMessage = error.response.data.error; // 获取错误信息
                if (errorMessage.includes(" - 今天奖励已领取")) {
                  rewardMessage = " - 今天奖励已领取";
                  log("账号:" + phone + " - " + rewardMessage);
                } else {
                  log("账号:" + phone + " - 奖励领取失败:" + errorMessage);
                }
              } else {
                log("账号:" + phone + " - 奖励领取失败");
              }
            }
          } else {
            rewardMessage = " - 奖励待领取";
          }
        } else {
          rewardMessage = " - 奖励待领取";
        }
 
        log(logMessage + rewardMessage);
 
        if (sendEmail == "是") { // 如果“是否发送邮件”为“是”
          try {
            let mailer;
            if (customEmailResult == "是") { // 如果“是否自定义邮箱”为“是”
              var customEmail = Application.Range(resultColumn + row).Text; // 获取指定单元格的值
              if (emailConfigured === "是") { // 如果配置了自定义邮箱
                mailer = SMTP.login({
                  host: zdy_host,
                  port: zdy_post,
                  username: zdy_username,
                  password: zdy_pasd,
                  secure: true
                });
                mailer.send({
                  from: "阿里云盘签到<" + zdy_username + ">",
                  to: customEmail,
                  subject: "阿里云盘签到通知 - " + data_time,
                  text: logMessage + rewardMessage
                });
              } else { // 如果未配置自定义邮箱,默认使用示例邮箱
                mailer = SMTP.login({
                  host: "smtp.163.com",
                  port: 465,
                  username: "fs8484848@163.com",
                  password: "QADSEMPKDHDAVWVD",
                  secure: true
                });
                mailer.send({
                  from: "阿里云盘签到<fs8484848@163.com>",
                  to: customEmail,
                  subject: "阿里云盘签到通知 - " + data_time,
                  text: logMessage + rewardMessage
                });
              }
              log("账号:" + phone + " - 已发送邮件至:" + customEmail);
            } else { // 如果“是否自定义邮箱”为“否”
              if (emailConfigured === "是") { // 如果配置了自定义邮箱
                mailer = SMTP.login({
                  host: zdy_host,
                  port: zdy_post,
                  username: zdy_username,
                  password: zdy_pasd,
                  secure: true
                });
                mailer.send({
                  from: "阿里云盘签到<" + zdy_username + ">",
                  to: jsyx,
                  subject: "阿里云盘签到通知 - " + data_time,
                  text: logMessage + rewardMessage
                });
              } else { // 如果未配置自定义邮箱,默认使用示例邮箱
                mailer = SMTP.login({
                  host: "smtp.163.com",
                  port: 465,
                  username: "fs8484848@163.com",
                  password: "QADSEMPKDHDAVWVD",
                  secure: true
                });
                mailer.send({
                  from: "阿里云盘签到<fs8484848@163.com>",
                  to: jsyx,
                  subject: "阿里云盘签到通知 - " + data_time,
                  text: logMessage + rewardMessage
                });
              }
              log("账号:" + phone + " - 已发送邮件至:" + jsyx);
            }
          } catch (error) {
            log("账号:" + phone + " - 发送邮件失败:" + error);
          }
        }
      } catch {
        log("单元格【" + tokenColumn + row + "】内的token签到失败");
        continue; // 跳过当前行的后续操作
      }
    } else {
      log("账号:" + phone + " 不签到");
    }
  }
}
 
var currentDate = new Date(); // 创建一个表示当前时间的 Date 对象
var currentDay = currentDate.getDate(); // 获取当前日期的天数
var lastDayOfMonth = new Date(currentDate.getFullYear(), currentDate.getMonth() + 1, 0).getDate(); // 获取当月的最后一天的日期
 
if (currentDay === lastDayOfMonth) { // 如果当前日期是当月的最后一天
  for (let row = 2; row <= 20; row++) { // 循环遍历从第 2 行到第 20 行的数据
    var sflq = Application.Range(signInColumn + row).Text; // 获取指定单元格的值
    var sflqReward = Application.Range(rewardColumn + row).Text; // 获取指定单元格的值
 
    if (sflq === "是" && sflqReward === "是") { // 如果“是否签到”和“是否领取奖励”均为“是”
      var refresh_token = Application.Range(tokenColumn + row).Text; // 获取指定单元格的值
      var jsyx = Application.Range(emailColumn + row).Text; // 获取指定单元格的值
      var phone = "账号:" + phone; // 构建账号信息字符串
 
      if (refresh_token !== "") { // 如果刷新令牌不为空
        // 发起网络请求-获取token
        let data = HTTP.post("https://auth.aliyundrive.com/v2/account/token",
          JSON.stringify({
            "grant_type": "refresh_token",
            "refresh_token": refresh_token
          })
        );
        data = data.json(); // 将响应数据解析为 JSON 格式
        var access_token = data['access_token']; // 获取访问令牌
 
        if (access_token === undefined) { // 如果访问令牌未定义
          log("单元格【" + tokenColumn + row + "】内的token值错误,程序执行失败,请重新复制正确的token值");
          continue; // 跳过当前行的后续操作
        }
 
        try {
          var access_token2 = 'Bearer ' + access_token; // 构建包含访问令牌的请求头
          // 领取奖励
          let data4 = HTTP.post(
            "https://member.aliyundrive.com/v1/activity/sign_in_reward?_rx-s=mobile",
            JSON.stringify({ "signInDay": lastDayOfMonth }),
            { headers: { "Authorization": access_token2 } }
          );
          data4 = data4.json(); // 将响应数据解析为 JSON 格式
          var claimStatus = data4["result"]["status"]; // 获取奖励状态
          var day = lastDayOfMonth; // 获取最后一天的日期
 
          if (claimStatus === "CLAIMED") {
            log("账号:" + phone + " - 第 " + day + " 天奖励领取成功");
          } else {
            log("账号:" + phone + " - 第 " + day + " 天奖励领取失败");
          }
        } catch {
          log("单元格【" + tokenColumn + row + "】内的token签到失败");
          continue; // 跳过当前行的后续操作
        }
      } else {
        log("账号:" + phone + " 不签到");
      }
    }
  }
 
  log("自动领取未领取奖励完成。");
}

8、将模版复制到自己创建的表格中
签到模版:https://kdocs.cn/l/ceQR4HpZ6op1
09.png
9、从浏览器中获取 refresh_token 的值:
浏览器登录阿里云盘阿里云盘登录地址:https://www.aliyundrive.com/
每个浏览器获取token方法有所不同,找不到token的用户,请自行搜索获取
10.png
或使用快捷指令获取token
[JavaScript] 纯文本查看 复制代码
1
2
3
//在控制台输入
var token = JSON.parse(localStorage.getItem('token'));
console.log('refresh_token:', token.refresh_token);

11.png
10、将refresh_token 的值复制到表格中,可以写入多个账号的refresh_token
012.png

11、填写表格内容
  • 填写是否签到
  • 填写是否领取奖励(是的话会自动领取签到奖励,为否的话只签到,当当前时间为每月最后一天,自动领取未领取的奖励)
  • 填写是否发送邮箱通知,发送邮箱通知的话,写入接收邮箱的地址,不发送就填否(单/多账号下只发送与同行对应账号相关内容)
  • 填写是否自定义发送邮箱,这里推荐会弄SMTP的人自己填写自己的发送邮箱配置(发送和接收的邮箱可以相同),不会弄的人就写否或者不写就好了,我在代码里写了一个发送邮箱,但是邮箱有每日限制发送数量,可能会有接收不到邮件的情况。由于用户大量增加导致默认配置邮箱发送邮件已达到上线,当日志中显示一下内容大概率为邮箱发送已达到上限,所以强烈介意使用自己的邮箱配置,教程已写在下方

12.png
下面表格中,代码只读取框住的部分,位置写对就行,其他地方无所谓
13.png
12、获取自己的SMTP这里我以网易邮箱为例:
打开网易官网:https://mail.163.com
14.png
15.png
13.QQ邮箱获取自己的SMTP
请查看这篇内容:使用QQ邮箱发送邮件,QQ邮箱的smtp设置
  • SMTP服务器:smtp.qq.com
  • SMTP端口号:465。必须填这个端口号,否则会报错
14、脚本中,点击上方的【保存】按钮,再点击【运行】按钮
确保下方日志是成功的后进行下一步

15、关闭代码编辑框,点击【效率】-【高级开发】-【定时任务】
17.png
16、点击【创建任务】
18.png
17、设置每天运行的时间,选择刚刚选择的脚本,保存,大功告成
19.png ]
成品展示:
20.png

关于每日自动任务无法执行问题我也很蒙蔽

如有知道的请留言

免费评分

参与人数 134威望 +1 吾爱币 +147 热心值 +116 收起 理由
zh569534004 + 1 + 1 新贴没了.........
小虫。 + 1 + 1 鼓励转贴优秀软件安全工具和文档!
kyslex + 1 可以做一个天翼云盘的吗
紫衣少年 + 1 + 1 点击立即执行,只显示执行完毕,没有显示其他内容,不确定是否成功
fzhhn + 1 + 1 用心讨论,共获提升!
camson + 1 + 1 谢谢@Thanks!
xiaoxutongxue + 1 热心回复!
ddddx + 1 热心回复!
aztl + 1 + 1 热心回复!
aqwly + 2 + 1 我很赞同!
往昔神 + 1 + 1 有大佬可以帮忙改个pico论坛的签到吗?
xj1210 + 1 谢谢@Thanks!
www0313 + 1 + 1 谢谢@Thanks!
懒得想名song + 1 谢谢@Thanks!
一剑封侯人 + 1 + 1 谢谢@Thanks!
Walt + 1 + 1 谢谢@Thanks!
吾发如雪 + 1 + 1 谢谢@Thanks!
zleizero + 1 谢谢@Thanks!
wjily999 + 1 + 1 我很赞同!
siegod + 1 + 1 谢谢@Thanks!
waj462020 + 1 + 1 我很赞同!
znhjay + 1 + 1 谢谢@Thanks!
Tee + 1 + 1 谢谢@Thanks!
庸俗的何先生 + 1 我很赞同!
99248688 + 1 谢谢@Thanks!
维德T + 1 + 1 提醒一下,token一个月左右需要重新获取。
baliheixiang + 1 + 1 谢谢@Thanks!
weixy1216 + 1 + 1 我很赞同!
炙焱閻羅 + 1 热心回复!
zxasqw235 + 1 + 1 谢谢!请问设定好以后是不是 不用打开网页也可以自动签到了呢?
放假几天 + 1 + 1 谢谢@Thanks!
starblacker + 2 + 1 用了青龙面板的那个,同样感谢楼主
Jayu202 + 1 + 1 热心回复!
刀小锋 + 1 我很赞同!
jsxywmt + 1 + 1 谢谢@Thanks!
Yuewit + 1 谢谢@Thanks!
谢单单 + 1 + 1 谢谢@Thanks!
Gin18 + 1 + 1 谢谢@Thanks!
鼠年大吉 + 1 + 1 谢谢@Thanks!
jysxs + 1 谢谢@Thanks!
linjie716 + 1 + 1 谢谢@Thanks!
st1717 + 1 + 1 我很赞同!
fololo + 1 + 1 谢谢@Thanks!
cqhaart + 1 + 1 我很赞同!
erz32306 + 1 + 1 我很赞同!
斯文小子 + 1 + 1 提示错误InternalError是因为token错误,填入正确的保存即可
无极166 + 1 + 1 谢谢@Thanks!
lllokz + 1 + 1 热心回复!
pangjj1 + 1 + 1 我很赞同!
黑火之源 + 1 + 1 谢谢@Thanks!
jasonwjx + 1 真的可以,谢谢!
10jr4 + 1 + 1 谢谢@Thanks!
wakealine + 1 热心回复!
无畏强 + 1 + 1 谢谢@Thanks!
米饭丶 + 1 + 1 错误InternalError,大佬,提示这个了
啊志online + 1 + 1 我很赞同!
CeceliaZ + 1 + 1 谢谢@Thanks!
suange2048 + 1 + 1 我很赞同!
heyu1234 + 1 + 1 谢谢@Thanks!
gg328217462 + 1 + 1 我很赞同!
xuguowen + 1 + 1 热心回复!
YI0IX + 1 + 1 谢谢@Thanks!
YUEN52 + 1 + 1 谢谢 @Thanks!
adma530 + 1 谢谢@Thanks!
zshz60 + 1 + 1 谢谢@Thanks!
qingyuan023 + 1 + 1 谢谢@Thanks!
xiaokun566 + 1 + 1 我很赞同!
abc1000 + 1 我很赞同!
固相膜 + 1 + 1 我很赞同!
若道寻常 + 2 + 1 我很赞同!
jingyesi2005 + 1 + 1 谢谢@Thanks!
Cleverwwh + 1 + 1 热心回复!
1.shui + 1 谢谢@Thanks!
yu21 + 1 谢谢@Thanks!
JLuming + 1 我很赞同!
zcy001 + 2 + 1 我很赞同!
Yiii952 + 1 用心讨论,共获提升!
WZCLCY + 1 + 1 我很赞同!
AlexMason + 1 + 1 牛逼了这个,每天被签到烦死
maxdog + 1 + 1 谢谢@Thanks!
littlewhite027 + 1 + 1 谢谢@Thanks!
xiaocan + 1 鼓励转贴优秀软件安全工具和文档!
Rrocki + 1 牛掰,很像什么CF一键领取助手
LYTLYT + 1 谢谢@Thanks!
笙若 + 1 + 1 谢谢@Thanks!
勇者为王 + 1 + 1 问题解决了就好,感谢楼主分享。
侃遍天下无二人 + 1 + 20 + 1 感谢发布原创作品,吾爱破解论坛因你更精彩!
cxl24049 + 1 + 1 谢谢@Thanks!
MC5678 + 1 + 1 谢谢@Thanks!
abvaqo + 1 + 1 热心回复!
这是我老公 + 2 + 1 鼓励转贴优秀软件安全工具和文档!
bosco0120 + 1 + 1 谢谢@Thanks!
2564187 + 1 + 1 我很赞同!
jeege + 1 + 1 谢谢@Thanks!
MoandMO + 1 感谢大佬无私奉献
二鹿丶 + 1 + 1 我很赞同!
小单单大蛋蛋 + 2 + 1 用心讨论,共获提升!
ruo40018293 + 1 + 1 谢谢@Thanks!
xb0wxh + 1 + 1 谢谢@Thanks!
lannntuuu + 1 谢谢@Thanks!强无敌!

查看全部评分

本帖被以下淘专辑推荐:

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

z1991627 发表于 2023-7-22 10:44
你没提醒  需要每月替换一次 refresh_token

点评

借楼,发信箱反复发送雷同信息会被系统判定为骚扰邮件导致封号,大家可以来看看我改的版本,加入了B站签到功能和pushplus微信推送(也可改为server酱推送)  发表于 2023-8-5 12:48
借个楼温馨提示,会导致系统判定发送垃圾邮件而封禁邮箱 尊敬的网易邮箱用户:您好, 经系统监测发现您的帐号(xxx)触犯了禁止发信的规则,已于 2023-08-01 09:47:00 被禁止使用网页版网易邮箱或通...  发表于 2023-8-2 18:39

免费评分

参与人数 1吾爱币 +1 收起 理由
zine0318 + 1 热心回复!

查看全部评分

无姓氏 发表于 2023-7-25 10:21
添加了pushplus,我测试能用,大家测试下

[JavaScript] 纯文本查看 复制代码
001
002
003
004
005
006
007
008
009
010
011
012
013
014
015
016
017
018
019
020
021
022
023
024
025
026
027
028
029
030
031
032
033
034
035
036
037
038
039
040
041
042
043
044
045
046
047
048
049
050
051
052
053
054
055
056
057
058
059
060
061
062
063
064
065
066
067
068
069
070
071
072
073
074
075
076
077
078
079
080
081
082
083
084
085
086
087
088
089
090
091
092
093
094
095
096
097
098
099
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
var myDate = new Date(); // 创建一个表示当前时间的 Date 对象
var data_time = myDate.toLocaleDateString(); // 获取当前日期的字符串表示
 
function sleep(d) {
  for (var t = Date.now(); Date.now() - t <= d;); // 使程序暂停执行一段时间
}
 
function log(message) {
  console.log(message); // 打印消息到控制台
  // TODO: 将日志写入文件
}
 
// 添加PushPlus通知
function sendPushPlusNotification(message) {
  var data = {
    token: "填入pushplus token",
    title: "阿里云盘签到通知",
    content: message,
    template: "html"
  };
 
  HTTP.post("https://pushplus.plus/send", JSON.stringify(data));
}
 
var tokenColumn = "A"; // 设置列号变量为 "A"
var signInColumn = "B"; // 设置列号变量为 "B"
var rewardColumn = "C"; // 设置列号变量为 "C"
var emailColumn = "F"; // 设置列号变量为 "F"
var sendEmailColumn = "G"; // 设置列号变量为 "G"
var resultColumn = "J"; // 设置列号变量为 "J"
 
for (let row = 2; row <= 20; row++) { // 循环遍历从第 2 行到第 20 行的数据
  var refresh_token = Application.Range(tokenColumn + row).Text; // 获取指定单元格的值
  var sflq = Application.Range(signInColumn + row).Text; // 获取指定单元格的值
  var sflqReward = Application.Range(rewardColumn + row).Text; // 获取指定单元格的值
  var jsyx = Application.Range(emailColumn + row).Text; // 获取指定单元格的值
  var sendEmail = Application.Range(sendEmailColumn + row).Text; // 获取指定单元格的值
  var customEmailResult = Application.Range(resultColumn + row).Text; // 获取指定单元格的值
 
  var emailConfigured = Application.Range("J1").Text; // 获取指定单元格的值
  var zdy_host = Application.Range("J2").Text; // 获取指定单元格的值
  var zdy_post = parseInt(Application.Range("J3").Text); // 获取指定单元格的值并转换为整数
  var zdy_username = Application.Range("J4").Text; // 获取指定单元格的值
  var zdy_pasd = Application.Range("J5").Text; // 获取指定单元格的值
 
  if (sflq == "是") { // 如果“是否签到”为“是”
    if (refresh_token != "") { // 如果刷新令牌不为空
      // 发起网络请求-获取token
      let data = HTTP.post("https://auth.aliyundrive.com/v2/account/token",
        JSON.stringify({
          "grant_type": "refresh_token",
          "refresh_token": refresh_token
        })
      );
      data = data.json(); // 将响应数据解析为 JSON 格式
      var access_token = data['access_token']; // 获取访问令牌
      var phone = data["user_name"]; // 获取用户名
 
      if (access_token == undefined) { // 如果访问令牌未定义
        log("单元格【" + tokenColumn + row + "】内的token值错误,程序执行失败,请重新复制正确的token值");
        continue; // 跳过当前行的后续操作
      }
 
      try {
        var access_token2 = 'Bearer ' + access_token; // 构建包含访问令牌的请求头
        // 签到
        let data2 = HTTP.post("https://member.aliyundrive.com/v1/activity/sign_in_list",
          JSON.stringify({ "_rx-s": "mobile" }),
          { headers: { "Authorization": access_token2 } }
        );
        data2 = data2.json(); // 将响应数据解析为 JSON 格式
        var signin_count = data2['result']['signInCount']; // 获取签到次数
 
        var logMessage = "账号:" + phone + " - 签到成功,本月累计签到 " + signin_count + " 天";
        var rewardMessage = "";
 
        if (sflqReward == "是") { // 如果“是否领取奖励”为“是”
          if (sflq == "是") { // 如果“是否签到”为“是”
            try {
              // 领取奖励
              let data3 = HTTP.post(
                "https://member.aliyundrive.com/v1/activity/sign_in_reward?_rx-s=mobile",
                JSON.stringify({ "signInDay": signin_count }),
                { headers: { "Authorization": access_token2 } }
              );
              data3 = data3.json(); // 将响应数据解析为 JSON 格式
              var rewardName = data3["result"]["name"]; // 获取奖励名称
              var rewardDescription = data3["result"]["description"]; // 获取奖励描述
              rewardMessage = " " + rewardName + " - " + rewardDescription;
            } catch (error) {
              if (error.response && error.response.data && error.response.data.error) {
                var errorMessage = error.response.data.error; // 获取错误信息
                if (errorMessage.includes(" - 今天奖励已领取")) {
                  rewardMessage = " - 今天奖励已领取";
                  log("账号:" + phone + " - " + rewardMessage);
                } else {
                  log("账号:" + phone + " - 奖励领取失败:" + errorMessage);
                }
              } else {
                log("账号:" + phone + " - 奖励领取失败");
              }
            }
          } else {
            rewardMessage = " - 奖励待领取";
          }
        } else {
          rewardMessage = " - 奖励待领取";
        }
 
        log(logMessage + rewardMessage);
         
        // 发送PushPlus通知
        sendPushPlusNotification(logMessage + rewardMessage);
 
        if (sendEmail == "是") { // 如果“是否发送邮件”为“是”
          try {
            let mailer;
            if (customEmailResult == "是") { // 如果“是否自定义邮箱”为“是”
              var customEmail = Application.Range(resultColumn + row).Text; // 获取指定单元格的值
              if (emailConfigured === "是") { // 如果配置了自定义邮箱
                mailer = SMTP.login({
                  host: zdy_host,
                  port: zdy_post,
                  username: zdy_username,
                  password: zdy_pasd,
                  secure: true
                });
                mailer.send({
                  from: "阿里云盘签到<" + zdy_username + ">",
                  to: customEmail,
                  subject: "阿里云盘签到通知 - " + data_time,
                  text: logMessage + rewardMessage
                });
              } else { // 如果未配置自定义邮箱,默认使用示例邮箱
                mailer = SMTP.login({
                  host: "smtp.163.com",
                  port: 465,
                  username: "fs8484848@163.com",
                  password: "QADSEMPKDHDAVWVD",
                  secure: true
                });
                mailer.send({
                  from: "阿里云盘签到<[email]fs8484848@163.com[/email]>",
                  to: customEmail,
                  subject: "阿里云盘签到通知 - " + data_time,
                  text: logMessage + rewardMessage
                });
              }
              log("账号:" + phone + " - 已发送邮件至:" + customEmail);
            } else { // 如果“是否自定义邮箱”为“否”
              if (emailConfigured === "是") { // 如果配置了自定义邮箱
                mailer = SMTP.login({
                  host: zdy_host,
                  port: zdy_post,
                  username: zdy_username,
                  password: zdy_pasd,
                  secure: true
                });
                mailer.send({
                  from: "阿里云盘签到<" + zdy_username + ">",
                  to: jsyx,
                  subject: "阿里云盘签到通知 - " + data_time,
                  text: logMessage + rewardMessage
                });
              } else { // 如果未配置自定义邮箱,默认使用示例邮箱
                mailer = SMTP.login({
                  host: "smtp.163.com",
                  port: 465,
                  username: "fs8484848@163.com",
                  password: "QADSEMPKDHDAVWVD",
                  secure: true
                });
                mailer.send({
                  from: "阿里云盘签到<[email]fs8484848@163.com[/email]>",
                  to: jsyx,
                  subject: "阿里云盘签到通知 - " + data_time,
                  text: logMessage + rewardMessage
                });
              }
              log("账号:" + phone + " - 已发送邮件至:" + jsyx);
            }
          } catch (error) {
            log("账号:" + phone + " - 发送邮件失败:" + error);
          }
        }
      } catch {
        log("单元格【" + tokenColumn + row + "】内的token签到失败");
        continue; // 跳过当前行的后续操作
      }
    } else {
      log("账号:" + phone + " 不签到");
    }
  }
}
 
var currentDate = new Date(); // 创建一个表示当前时间的 Date 对象
var currentDay = currentDate.getDate(); // 获取当前日期的天数
var lastDayOfMonth = new Date(currentDate.getFullYear(), currentDate.getMonth() + 1, 0).getDate(); // 获取当月的最后一天的日期
 
if (currentDay === lastDayOfMonth) { // 如果当前日期是当月的最后一天
  for (let row = 2; row <= 20; row++) { // 循环遍历从第 2 行到第 20 行的数据
    var sflq = Application.Range(signInColumn + row).Text; // 获取指定单元格的值
    var sflqReward = Application.Range(rewardColumn + row).Text; // 获取指定单元格的值
 
    if (sflq === "是" && sflqReward === "是") { // 如果“是否签到”和“是否领取奖励”均为“是”
      var refresh_token = Application.Range(tokenColumn + row).Text; // 获取指定单元格的值
      var jsyx = Application.Range(emailColumn + row).Text; // 获取指定单元格的值
      var phone = "账号:" + phone; // 构建账号信息字符串
 
      if (refresh_token !== "") { // 如果刷新令牌不为空
        // 发起网络请求-获取token
        let data = HTTP.post("https://auth.aliyundrive.com/v2/account/token",
          JSON.stringify({
            "grant_type": "refresh_token",
            "refresh_token": refresh_token
          })
        );
        data = data.json(); // 将响应数据解析为 JSON 格式
        var access_token = data['access_token']; // 获取访问令牌
 
        if (access_token === undefined) { // 如果访问令牌未定义
          log("单元格【" + tokenColumn + row + "】内的token值错误,程序执行失败,请重新复制正确的token值");
          continue; // 跳过当前行的后续操作
        }
 
        try {
          var access_token2 = 'Bearer ' + access_token; // 构建包含访问令牌的请求头
          // 领取奖励
          let data4 = HTTP.post(
            "https://member.aliyundrive.com/v1/activity/sign_in_reward?_rx-s=mobile",
            JSON.stringify({ "signInDay": lastDayOfMonth }),
            { headers: { "Authorization": access_token2 } }
          );
          data4 = data4.json(); // 将响应数据解析为 JSON 格式
          var claimStatus = data4["result"]["status"]; // 获取奖励状态
          var day = lastDayOfMonth; // 获取最后一天的日期
 
          if (claimStatus === "CLAIMED") {
            log("账号:" + phone + " - 第 " + day + " 天奖励领取成功");
          } else {
            log("账号:" + phone + " - 第 " + day + " 天奖励领取失败");
          }
        } catch {
          log("单元格【" + tokenColumn + row + "】内的token签到失败");
          continue; // 跳过当前行的后续操作
        }
      } else {
        log("账号:" + phone + " 不签到");
      }
    }
  }
 
  log("自动领取未领取奖励完成。");
}

免费评分

参与人数 8吾爱币 +8 热心值 +7 收起 理由
yangyangyixia + 1 + 1 我很赞同!
fzhhn + 1 + 1 我很赞同!
lizhichuixue + 1 谢谢@Thanks!pushplus有效,现在很少用邮箱了
brightsz + 1 + 1 谢谢@Thanks!
zhang1497 + 1 + 1 测试可以用,毕竟QQ都不上,哪里会看邮箱
a809068872 + 1 + 1 谢谢@Thanks!
Jokerik + 1 + 1 我很赞同!
qq1179090560 + 1 + 1 测试可以推送

查看全部评分

koneaya 发表于 2023-7-23 10:29
谷GE浏览器的找不到图上的设置的麻瓜看下面。
打开登陆网盘后按F12按下图操作

F12跳出这个页面

F12跳出这个页面
2.png

免费评分

参与人数 8吾爱币 +8 热心值 +7 收起 理由
Lwk520pj + 1 + 1 热心回复!
fishiss + 1 @qike2391 用了两天,这两天每天都会提示token签到失败~能不能直接提供账号.
错的是世界 + 1 + 1 谢谢@Thanks!
a948423110 + 1 + 1 热心回复!
apor999 + 1 + 1 热心回复!
davidyxwj + 1 + 1 我很赞同!
gai + 1 + 1 我很赞同!
宅友 + 1 + 1 谢谢 @Thanks!

查看全部评分

ThemanRonin 发表于 2023-7-22 11:15
本帖最后由 ThemanRonin 于 2023-7-22 11:34 编辑

账号: ***  - 发送邮件失败:Error: E88B1A675E7F0000:error:0A00010B:SSL routines:ssl3_get_record:wrong version number:../deps/openssl/openssl/ssl/record/ssl3_record.c:354:  

邮箱为什么发送失败,填写的都是没有问题的


2025888543 发表于 2023-7-22 10:50
感谢分享
 楼主| qike2391 发表于 2023-7-22 12:38
qquj 发表于 2023-7-22 11:02
贴一下原作者知乎链接好一点吧

本人就是知乎二创,第一次发帖对平台规则不太了解,尽量避免外站引流,所以没有放,要是原创看到了希望理解我的做法,谢谢!
noloverose 发表于 2023-7-22 15:06
太需要了,感谢楼主
不矜不伐 发表于 2023-7-22 15:02
腾讯视频签到有么?
RyesLai 发表于 2023-7-22 11:13
真不错,楼主给力
头像被屏蔽
醉看小风月 发表于 2023-7-22 10:40
提示: 该帖被管理员或版主屏蔽
52shuqi 发表于 2023-7-22 10:44
我靠,我爱了,正好需要这个哈哈哈哈
mrleochan 发表于 2023-7-22 10:46
这都可以啊,谢谢
liuyouxiao 发表于 2023-7-22 10:49
6666 Ah我要试一下
YanJiuKanKan 发表于 2023-7-22 10:49
感谢分享,试试去
cn2jp 发表于 2023-7-22 10:53
在线文档的这个用法厉害了!
sai609 发表于 2023-7-22 10:55
阿里都开始收费,每天签到赚取空间的路子已经被堵
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2025-5-28 01:08

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表