阿里云盘实现自动签到 无需服务器

发布于 2023-12-18  1760 次阅读


效果展示

今天逛知乎看到了一篇很有意思的文章,不需要服务器部署一个自动签到的功能,我立马就来了兴趣,赶紧在自己电脑上试试,正好我目前也在使用阿里云盘。
知乎文章:https://zhuanlan.zhihu.com/p/629476969
用到了金山云在线文档,然后把作者写的js脚本放进去,使用定时任务每天执行脚本来自动签到。由于没有smtp服务器,所以不能每天发送邮箱给我不过没关系,我只要知道了他每天签到了就行。哈哈哈
作者更新了
现在不需要smtp服务器发送邮箱了,可以用pushplus微信推送
进入金山云在线文档,新建excel表格右上角效率 ---> 高级开发 ---> javascript脚本编辑

创建脚本 --- > 文件共享脚本

服务授权 ---> 添加服务 --> 把这三个服务全部添加

把以下代码复制进去吧

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 =value+"\n"+"单元格【"+dyg+"】内的token值错误或已过期,程序执行失败,请重新复制正确的token值"+"<br/>"
    }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+"天"

      }catch{
        var value ="单元格【"+dyg+"】内的token签到失败"+"<br/>"
        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"]+"<br/>"
        }catch{
              var value = value+ "账号:"+data["user_name"]+"-领取奖励失败\n"+"<br/>"
        }
      }else{
        value = value +"   奖励待领取"+"<br/>"
      }
    }
  }
}
console.log(value)
var sftz = Application.Range("E"+1).Text
if (sftz=="是"){
  var token =  Application.Range("E"+2).Text
  // 发起网络请求
  var title = "阿里云盘-签到通知"
  var content = value
  var url = "http://www.pushplus.plus/send?token="+token+"&title="+title+"&content="+content+"&template=html"
  let resp = HTTP.get(url)
  // 检查response的状态
  if(resp.status!==200){
      throw new Error("fetch err! status is "+resp.status())
  }
  console.log(resp.text())
}


保存 运行脚本

填写表格 在A2到A20这个单元填写你的阿里网盘refresh_token
下面我教怎么获取token
打开阿里云盘网页版---> f12打开开发者工具--->应用程序--->本地存储--->第二个网址 -->密钥-->往下翻有个token 把他复制到表格里面即可 后面的和我填的一致即可

后面有个微信通知的token 我们访问这个网站https://www.pushplus.plus/
注册登录 ---> 发送消息 ---> 一对一消息


把表格填好运行一遍测试结果

表格样式:

现在我们把他加入定时任务,让他每天0点30分执行一次这个脚本进行签到


好了至此我搭好了,你们也去试试吧!!!

  • alipay_img
  • wechat_img
一朝风月,万古长空
最后更新于 2024-01-25