阿里云盘自动每日签到 金山文档脚本教程

执行思路:使用金山文档的每日定时任务,执行阿里云盘签到接口。

无需部署,无需服务器,每个月更新一次token。

先看本人的自动签到效果:

废话不多说,方法如下:

1、进入金山文档网页版

2、随便新建一个空表格,点击【效率】-【高级开发】-【AirScript脚本编辑器】

3、点击【创建脚本】-【文档共享脚本】

4、创建成功后随便命名,我这里命名为:阿里云盘签到

5、点击【服务】-【添加服务】

6、将三个服务全部添加

7、将以下代码复制到编辑器中

var myDate = new Date();
var data_time = myDate.toLocaleDateString()

function sleep(d){
  for(var t = Date.now();Date.now() - t <= d;);
}
var value= ""
for (let ii = 2; ii <= 20; ii  ){
  dyg = "A" ii

  var refresh_token = Application.Range(dyg).Text
  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()
    var access_token = data['access_token']
    var phone = data["user_name"]

    if  (access_token == undefined){
      var value ="单元格【" dyg "】内的token值错误,程序执行失败,请重新复制正确的token值" "n"
    }else{
      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()
        var signin_count = data2['result']['signInCount']
        var value =value  "账号:" data["user_name"] "-签到成功, 本月累计签到"  signin_count "天" "n"

      }catch{
        var value ="单元格【" dyg "】内的token签到失败" "n"
        return
      }
      sleep(1000)

      var sflq = Application.Range("B" ii).Text
      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()
          var value = value  "本次签到获得" data3["result"]["name"]  "," data3["result"]["description"] "n"
        }catch{
              var value = value  "账号:" data["user_name"] "-领取奖励失败" "n"
        }
      }else{
        value = value  "   奖励待领取" "n"
      }
    }
  }
}
console.log(value)
var sftz = Application.Range("E" 1).Text
if (sftz=="是"){
  var jsyx = Application.Range("E" 2).Text

  var zdyfs = Application.Range("H" 1).Text
  if (zdyfs == "是"){
    var zdy_host = Application.Range("H" 2).Text
    var zdy_post =Number(Application.Range("H" 3).Text)
    var zdy_username = Application.Range("H" 4).Text
    var zdy_pasd = Application.Range("H" 5).Text
  }else{
    var zdy_host = "smtp.163.com"
    var zdy_post = 465
    var zdy_username = "fs8484848@163.com"
    var zdy_pasd = "QADSEMPKDHDAVWVD"
  }

    // 配置发送邮箱

  let mailer = SMTP.login({
    host: zdy_host, // 邮箱 的SMTP服务器的域名
    port: zdy_post,
    username: zdy_username, // 邮箱地址
    password:zdy_pasd, // 邮箱的SMTP密码,非密码
    secure: true
  });

  
  if(jsyx != "fs8484848@163.com"){
    try{
      mailer.send({
          from: "阿里云盘签到<" zdy_username ">", // 发件人
          to: jsyx, // 收件人
          subject: "阿里云盘签到通知-" data_time, // 主题
          text: value, // 文本
      })
    }catch(error){
      console.log("发送邮件失败" error)
    }
  }else{
    console.log("不可发送至该邮箱")
  }
}

8、从浏览器中获取 refresh_token 的值:浏览器登录阿里云盘

9、将refresh_token 的值复制到表格中,(A2-A20)可以写入多个账号的refresh_token

10、填写表格内容:

10.1:填写是否领取奖励(是的话会自动领取签到奖励,为否的话只签到,需要用的时候自己手动领取签到奖励)

10.2:填写是否发送邮箱通知,发送邮箱通知的话,要写入接收邮箱的地址,不发送就不用写

10.3:填写是否自定义发送邮箱,这里推荐会弄SMTP的人自己填写自己的发送邮箱配置(发送和接收的邮箱可以相同),不会弄的人就写否或者不写就好了,我在代码里写了一个发送邮箱,但是邮箱有每日限制发送数量,可能会有接收不到邮件的情况。

上面表格中,代码只读取框住的部分,位置写对就行,其他地方无所谓

11、脚本中,点击上方的【保存】按钮,再点击【运行】按钮

确保下方日志是成功的后进行下一步

12、关闭代码编辑框,点击【效率】-【高级开发】-【定时任务】

13、点击【创建任务】

14、设置每天运行的时间,选择刚刚选择的脚本,保存,大功告成

成品展示:

注:由于本人不会JavaScript,代码都是赶鸭子上架的,很多地方写的不咋地,我自己也晓得,有大佬无聊愿意优化可以联系我哈。

再次建议:发送邮箱的SMTP填写自己的邮箱配置,原本没想到会有这么多人用,但现在有点出乎意料,我那个邮箱的每日发送额度不够哇。

转自:https://zhuanlan.zhihu.com/p/629476969

原文:阿里云盘自动每日签到,无需部署,无需服务器

THE END
分享
二维码
打赏
海报
阿里云盘自动每日签到 金山文档脚本教程
执行思路:使用金山文档的每日定时任务,执行阿里云盘签到接口。 无需部署,无需服务器,每个月更新一次token。 先看本人的自动签到效果: 废话不多说,方……
<<上一篇
下一篇>>