吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 35110|回复: 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] 纯文本查看 复制代码
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] 纯文本查看 复制代码
//在控制台输入
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] 纯文本查看 复制代码
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, 2024-11-24 10:33

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

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