没有服务器,阿里云盘也能自动签到!
没有服务器,阿里云盘也能自动签到!
12个月前 1.31k 阅读
  • 首页
  • /
  • 笔记
  • /
  • 正文

  • 阿里盘签到

    1.打开【金山文档-阿里云盘自动签到模板】:https://kdocs.cn/l/cgUAOWCTQGhB

    2.点击左上角三条杠图标,另存到自己的金山文档中

    如图所示:

    3.获取阿里云盘Token:获取Token、Cookie教程

    4.把获取到的Token粘贴到【Token1】中
    (如有多个账号,就依次获取并粘贴在Token2及下边的表格里,每行一个)

    5.打开PUSHPLUS推送官网:https://www.pushplus.plus
    (第5.6.7步是为了签到后成功与否将消息推送给你,不需要通知的朋友可以跳过)

    6.微信扫码登录后,点击【发送消息】-【一对一消息】,一键复制你的Token

    如图所示:

    7.把复制到的内容替换到表格的【pushplustoken】中

    如图所示:

    8.点击上方的【效率】-【高级开发】-【AirScript脚本编辑器】

    如图所示:

    9.正常情况下已经有一个脚本了,有了就跳到第12步

    10.如果没有就点击【创建脚本】-【文档共享脚本】,名字随意起一个

    11.复制以下脚本代码粘贴到脚本编辑器中,然后保存

    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 qiandaoColumn = "B"; // 设置列号变量为 "B"
    var serverchanColumn = "C"; // 设置列号变量为 "C"
    var pushplusColumn = "D"; // 设置列号变量为 "D"
    var pushColumn = "E"; // 设置列号变量为 "E"
    var logindateColumn = "G"; // 设置列号变量为 "G"
    
    for (let row = 1; row <= 10; row++) { // 循环遍历从第 1 行到第 10 行的数据
    var refresh_token = Application.Range(tokenColumn + row).Text; // 获取指定单元格的值
    var qiandao = Application.Range(qiandaoColumn + row).Text; // 获取指定单元格的值
    var servertoken = Application.Range(serverchanColumn + row).Text; // 获取指定单元格的值
    var pushtoken = Application.Range(pushplusColumn + row).Text; // 获取指定单元格的值
    var push = Application.Range(pushColumn + row).Text; // 获取指定单元格的值
    var ldate = Application.Range(logindateColumn + row).Text; // 获取指定单元格的值
    
    if (refresh_token != "") { // 如果刷新令牌不为空
    if (qiandao == "是") {//签到&领奖开关
    //获取Bearer-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) { // 如果报错
    console.log("单元格【" + tokenColumn + row + "】token执行出错,请检查token或者API接口");
    continue; // 跳过当前行的后续操作()
                }
          Time.sleep(3000)     
    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 result1 = "账号:" + phone + " - 签到成功";
    var result2 = "本月累计签到 " + signin_count + " 天";
    console.log(result1)
          }catch (error) {
    console.log("单元格【" + tokenColumn + row + "】签到出错,请检查API接口");
    continue; // 跳过当前行的后续操作()
          }
          Time.sleep(3000)
    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 result3 = data3["result"]["name"]; // 获取奖励名称
    var result4 = data3["result"]["notice"]; // 获取奖励描述
    console.log(result4)
                  }catch (error) {
    console.log("单元格【" + tokenColumn + row + "】领奖出错,请手动确认");
    continue; // 跳过当前行的后续操作()
                  }
    
    var loginnotice ="" //25天登陆提醒
    var ldate = Application.Range(logindateColumn + row).Text; // 获取指定单元格的值
    if (ldate !== '') {
      Application.Range(logindateColumn + row).NumberFormat = 'yyyy-mm-dd;@'
    var formatlogindate = Application.Range(logindateColumn + row).Text
    console.log(formatlogindate)
    function formatDateTime(date) {
    const year = date.getFullYear();
    const month = date.getMonth() + 1;
    const day = date.getDate();
    return `${year}-${pad(month)}-${pad(day)} `;
    }
    function pad(num) {
    return num.toString().padStart(2, '0');
    }
    const currentDate = new Date();
    var formacurrentdate=formatDateTime(currentDate);
    console.log(formacurrentdate)
    function getDate(strDate){
    if(strDate==null||strDate===undefined) return null;
    var date = new Date();
    try{
    if(strDate == undefined){
            date= null;
          }else if(typeof strDate == 'string'){
            strDate = strDate.replace(/:/g,'-');
            strDate = strDate.replace(/ /g,'-');
    var dtArr = strDate.split("-");
    if(dtArr.length>=3&&dtArr.length<6){
              date=new Date(dtArr[0], dtArr[1], dtArr[2]);
            }else if(date.length>8){
              date=new Date(Date.UTC(dtArr[0],dtArr[1]-1,dtArr[2],dtArr[3]-8,dtArr[4],dtArr[5]));
            }
          }else{
            date = null;
          }
    return date;
        }catch(e){
          alert('格式化日期出现异常:' + e.message);
        }
      }
    var timeslong = getDate(formacurrentdate).getTime()-getDate(formatlogindate).getTime();
    console.log(timeslong)
    if (timeslong >2160000000){//时间差单位毫秒
    var loginnotice = "登录已超25天注意token失效";
        }
    }
    
    
    //推送
    if (servertoken !== '' && push == "Serverchan") {//serverchan通道推送
    const urls = "https://sctapi.ftqq.com/" + servertoken + ".send"
    let response = HTTP.post(
            urls,
            {
    title: result1,
    desp: ''+result2+'\n\n'+result4+'\n\n'+loginnotice+'',
            },
            {
    headers: {
    "Content-Type": "application/json",
                },
    timeout: 60000, // 设置超时时间
            }
        );
    // 打印推送结果
    console.log(response.text());
    }
    
    if (pushtoken !== '' && push == "Pushplus") {//pushplus通道推送
    const urlp = "http://www.pushplus.plus/send"
    let response = HTTP.post(
            urlp,
            {
    "token": pushtoken,
    "title": "阿里云盘-签到通知",
    "content": '' + result1 + '\n' + result2 + '\n' + result4 + '\n' + loginnotice + '',
    "channel": "wechat",
    "template": "html"
            },
            {
    headers: {
    "Content-Type": "application/json",
                },
    timeout: 60000, // 设置超时时间
            }
        );
    // 打印推送结果
    console.log(response.text());
    }
    }
    }
    //无有效token
    }

    如图所示:

    12.点击上方【服务授权】按钮,添加【云文档API】和【网络API】两个服务

    如图所示:

    13.点击运行,测试一下脚本(可能会出来个授权窗口,点允许就对了)

    14.再看看下方的日志,显示成功就OK了

    如图所示:

    15.关闭脚本编辑器,再点击【效率】-【高级开发】-【定时任务】-【创建任务】

    如图所示:

    16.设置每天启动,在下方选择刚刚设置的脚本,点击确认就大功告成了

    如图所示:



    0

    评语 (0)

    取消