最新阿里云盤自動簽到,自動更新token免部署

廣告也精彩

注意

關于備份獎勵領取失敗的情況說明:目前沒有抓包去自動達到領取備份獎勵的條件

所以如果需要領取備份獎勵。需要你的手機/電腦開啟自動備份 且當天 登錄成功一次。【手機可以開啟后臺自啟動】

如果你手機都不啟動阿里云盤 他自然今天沒法備份 自然就沒法領取備份獎勵。

關于 pusplus推送失敗的情況說明:運行的時候調用的是金山云的服務器IP 。可能由于部分IP調用過多,被pusplus推送的官方拉黑IP了

所以導致了可能提示(XXX禁止訪問 )導致推送失敗 但是每天都是正常簽到的 。這點無需擔心

功能以及優點

不需要服務器部署、直接一個wps云文檔即可使用。

理論上實現了token的自動更新 目前測試沒問題 (只需要獲取token一次、無需后續抓包)。

利用自己想到的避開了檢測【隨機時間延遲、不同時間簽到】(IP沒改,因為很多人不會用)。

根據隨機值決定簽到的時間。避開了每天都是那個時間簽到的檢測。

增加了手機開啟自動備份的簽到獎勵【需要手機開啟備份功能 并且開啟自啟動 不然當天不登錄阿里云盤則無法領取】

不需要開電腦、不需要任何成本,都是云運行, 一次獲取,理論上可以用很久,具體多久就得到時候測試看了。

使用方法

1.首先 打開wps云文檔的連接 并且另存為 保存成你自己的!

【金山文檔】 阿里云簽到模版-另存為:https://kdocs.cn/l/coSH7LfVJjNt

2.點擊【效率】-【高級開發】-【AirScript腳本編輯器】 查看 【阿里云盤簽到】的 是否存在(如不存在請復制最下方的代碼 放進去)

3. 打開阿里云盤 :https://www.aliyundrive.com/ 登錄后 連續按兩次右鍵 選擇 檢查/審查元素 看不同瀏覽器的配置 或者更簡單的 按F12 即可

最新阿里云盤自動簽到,自動更新token免部署

4.輸入以下代碼 將命令粘貼到【控制臺】-【回車】

copy(JSON.parse(localStorage.token).refresh_token); console.log(JSON.parse(localStorage.token).refresh_token);
最新阿里云盤自動簽到,自動更新token免部署

5.將獲取到的token粘貼到【A1】單元格順便將token獲取時間填入,不填當token大于20天時無法更換

最新阿里云盤自動簽到,自動更新token免部署

6.獲取pushplus和Serverchan的token

兩個選擇一個即可,兩個選擇一個即可,推薦pushplus

公主號:pushplus推送加 關注后 發送“token” 即可獲得token 復制 token 粘貼到推送(PushPlus) 的那一欄里(D列)

最新阿里云盤自動簽到,自動更新token免部署

Serverchan-掃碼登錄

Serverchan:https://sct.ftqq.com/ 右上角 登入 登入后 拿到如下圖的sendkey 粘貼到推送(ServerChan)的那一欄里(C列)

最新阿里云盤自動簽到,自動更新token免部署

如果你到了這里 就90%大功告成了!

7.接下來就是 測試!

如果推送成功/日志提示 簽到成功 就說明你已經成功了

【如果提示:隨機值不為1 不簽到】【如果提示:隨機值不為1 不簽到】

請再次點擊運行!請再次點擊運行!請再次點擊運行!

最新阿里云盤自動簽到,自動更新token免部署

8。創建定時任務 【可以創建多個 可以一個 建議多個】

最新阿里云盤自動簽到,自動更新token免部署

你們自己可以修改的地方:

1.代碼第3行:var dengdai = 1 即:1是延遲0-1分鐘內 取一個秒數 就是0到60秒取一個隨機數 不建議修改

2.代碼第6行:var renwu = 2 即:你加了幾個定時任務 然后-1 就是你定時2個任務 就寫2 定時3個 就寫2 定時4、5個建議也寫3 建議最大到2或者3

簡言之:比如你定時任務X個 然后每一次執行都會從1 到 你設置的數 之間取一個隨機值 是1 才簽到

PS:如果你只需要一個定時任務 renwu 請寫1。

3.代碼第7行:var zong = 10 即: 一共執行10個任務 如果你需要多增 那就在前10行內隨意一行 :插入行 就可以了(保持原作者的第11 行一直在所有token最下面)

4.最重要的,如果你手機沒有開啟 自動備份功能 不需要領取自動備份的獎勵的話!

第11行的 var backups = true true 改成 false 如果你需要領取 就不動!

最新阿里云盤自動簽到,自動更新token免部署

配置過程中可能遇到的問題

1.問:配置完成,運行腳本出現{“code”:999,”msg”:”所在IP:120.92.xx.xxx禁止訪問”,”data”:null}

答:切換網絡再次運行或過會在嘗試

以下是代碼

var myDate = new Date(); // 創建一個表示當前時間的 Date 對象
var data_time = myDate.toLocaleDateString(); // 獲取當前日期的字符串表示
var date = `${new Date().getMonth() + 1}-${new Date().getDate().toString().padStart(2, '0')}`
 
 
//需要修改的地方
var dengdai = 2
//意思是 等待多少分鐘去登錄 等待多少分鐘去簽到  默認1-15分鐘之間 改了15就是1-X分鐘之間 取隨機的
var renwu = 2   //建議定時2個任務 就寫1  定時3個任務就寫2  定時任務-1或者-2都可以  他是從1到renwu之間 取一個隨機數
var zong = 10   //總任務  就是你有幾個號你就寫幾  就行 默認10 也可以 如果多10行  就在10行以內 右鍵 插入行
var backups = true  //是否領取備份獎勵  是寫true  不領取寫false
 
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 = "F"; // 設置列號變量為 "F"
var signinresult = "G"http://簽到的結果  設置列號變量為 "G"
 
for (let row = 1; row <= zong; 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; // 獲取指定單元格的值
    var signin = Application.Range(signinresult + row).Text; // 獲取簽到結果
    if (refresh_token != "") { // 如果刷新令牌不為空
        if (qiandao == "是") {//簽到&領獎開關
            if (signin !== date + '已簽到') {
                var randomInt = Math.floor(Math.random() * renwu) + 1
                //randomInt  中的3 可以修改  寫3就是 從1到3取一個隨機整數 比如2  當他 = 1 的時候 簽到才會執行
                if (randomInt === 1) {//等于1 就開始簽到  不等于1 都不簽到
 
                    //獲取Bearer-token
                    var mtid = parseInt(Math.floor(Math.random() * 60000 * dengdai)) + 6000
                    var loginresult = "登錄延遲" + parseFloat((mtid / 120000).toFixed(2)) + "分,即" + + parseFloat((mtid / 2000).toFixed(2)) + "秒"
                    console.log("登錄延遲" + parseFloat((mtid / 120000).toFixed(2)) + "分,即" + + parseFloat((mtid / 2000).toFixed(2)) + "秒")
                    Time.sleep(mtid / 2)
                    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; // 跳過當前行的后續操作()
                    }
                    var mtid = parseInt(Math.floor(Math.random() * 60000 * dengdai / 2)) + 6000
                    var signresult = "簽到延遲" + parseFloat((mtid / 60000).toFixed(2)) + "分,即" + + parseFloat((mtid / 1000).toFixed(2)) + "秒"
                    console.log("簽到延遲" + parseFloat((mtid / 60000).toFixed(2)) + "分,即" + + parseFloat((mtid / 1000).toFixed(2)) + "秒")
                    Time.sleep(mtid)
                    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"]; // 獲取獎勵描述
                        Application.Range(signinresult + row).Value = date + '已簽到'
                        //把簽到結果 寫入文檔內
                        console.log(result4)
                    } catch (error) {
                        console.log("單元格【" + tokenColumn + row + "】領獎出錯,請手動確認");
                        continue; // 跳過當前行的后續操作()
                    }
                    if (backups === true) {
                        // try {
                        // 備份的獎勵 
                        var access_token2 = 'Bearer ' + access_token; // 構建包含訪問令牌的請求頭
                        let data5 = HTTP.post("https://member.aliyundrive.com/v2/activity/sign_in_task_reward",
                            JSON.stringify({ "signInDay": signin_count }),
                            { headers: { "Authorization": access_token2 } }
                        );
                        data5 = data5.json(); // 將響應數據解析為 JSON 格式
                        // console.log('備份獎勵', data5)
                        var success = data5['success']
                        if (success == true) {
                            var result5 = data5["result"]["notice"]; // 獲取獎勵名稱
                        } else {
                            var result5 = data5["message"] // 失敗原因
                        }
 
                        console.log(result5)
                        // } catch (error) {
                        //     console.log("單元格【" + tokenColumn + row + "】領取備份出錯,請檢查API接口");
                        //     continue; // 跳過當前行的后續操作()
                        // }
                    } else {
                        console.log('不領取備份獎勵')
                    }
 
 
                    var loginnotice = "" //20天后自動刷新refresh_token
                    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 > 1728000000) {//時間差單位毫秒
                            var loginnotice = "登錄已超20天自動刷新refresh_token";
 
                            let my_token = HTTP.post("https://auth.aliyundrive.com/v2/account/token",
                                JSON.stringify({
                                    "grant_type": "refresh_token",
                                    "refresh_token": refresh_token
                                }));
                            my_token = my_token.json()["refresh_token"]
                            if (my_token) {
                                console.log("當前賬號refresh_token刷新為", my_token);
                                Application.Range(tokenColumn + row).Value = my_token;
                                console.log("當前賬號登錄日期刷新為", formacurrentdate);
                                Application.Range(logindateColumn + row).Value = formacurrentdate
                            }
                        }
                    }
 
 
                    //推送
                    if (servertoken !== '' && push == "Serverchan") {//serverchan通道推送
                        const urls = "https://sctapi.ftqq.com/" + servertoken + ".send"
                        let response = HTTP.post(
                            urls,
                            {
                                title: result1,
                                desp: loginresult + '\n\n' + signresult + '\n\n' + '' + result2 + '\n\n' + result4 + '\n\n' + result5 + '\n\n' + loginnotice + '',
                            },
                            {
                                headers: {
                                    "Content-Type": "application/json",
                                },
                                timeout: 60000, // 設置超時時間
                            }
                        );
                        // 打印推送結果
                        console.log(response.text());
                    }
 
                    if (pushtoken !== '' && push == "Pushplus") {//pushplus通道推送
                        const urlp = "https://www.pushplus.plus/send"
                        let response = HTTP.post(
                            urlp,
                            {
                                "token": pushtoken,
                                "title": "阿里云盤-簽到通知",
                                "content": loginresult + '\n' + signresult + '\n' + '' + result1 + '\n' + result2 + '\n' + result4 + '\n' + result5 + '\n' + loginnotice + '',
                                "channel": "wechat",
                                "template": "html"
                            },
                            {
                                headers: {
                                    "Content-Type": "application/json",
                                },
                                timeout: 60000, // 設置超時時間
                            }
                        );
                        // 打印推送結果
                        console.log(response.text());
                    }
 
 
                } else {//randomInt 不等于1  不簽到
                    console.log('取得隨機值不是1,不簽到')
                }
 
            } else {//簽到了
                console.log(date + '已簽到')
            }
        }//不需要簽到
    }//令牌為空
    //無有效token
}
? 版權聲明

相關文章

暫無評論

none
暫無評論...