// # Source: https://github.com/sudojia/AutoTaskScript/blob/script/src/web/sudojia_aliyundrive.js // # Raw: https://raw.githubusercontent.com/sudojia/AutoTaskScript/script/src/web/sudojia_aliyundrive.js // # Repo: sudojia/AutoTaskScript // # Path: src/web/sudojia_aliyundrive.js // # UploadedAt: 2025-04-28T19:26:13+08:00 // # SHA256: 75ec43e2a22bf9b15950ca462ac41bcfb78ba18983f400ec906670a29fd035c9 // # Category: APP版/账密 // # Evidence: username/password/mobile/login // /** * 阿里云盘每日签到 * * 移除了获取奖励, 目前仅支持签到 * export ALI_REFRESH_TOKEN = 'xxxxx' * 多账号用 & 或换行 * * @author Telegram@sudojia * @site https://blog.imzjw.cn * @date 2024/5/18 * * const $ = new Env('阿里云盘签到') * cron: 35 10 * * * */ const initScript = require('../utils/initScript') const {$, notify, sudojia, checkUpdate} = initScript('阿里云盘签到'); // 环境变量 const refreshTokenList = process.env.ALI_REFRESH_TOKEN ? process.env.ALI_REFRESH_TOKEN.split(/[\n&]/) : []; // 消息推送 let message = ''; // 阿里云盘 API 配置 const API_CONFIG = { "SIGN_IN_API": "https://member.aliyundrive.com/v1/activity/sign_in_list", "GET_REWARD_API": "https://member.aliyundrive.com/v1/activity/sign_in_reward?_rx-s=mobile", "ACCESS_TOKEN_API": "https://auth.aliyundrive.com/v2/account/token" } !(async () => { await checkUpdate($.name, refreshTokenList); for (let i = 0; i < refreshTokenList.length; i++) { const index = i + 1; const refreshToken = refreshTokenList[i]; console.log(`\n*****第[${index}]个${$.name}账号*****`); message += `📣====${$.name}账号[${index}]====📣\n`; await main(refreshToken); await $.wait(sudojia.getRandomWait(2300, 2800)); } if (message) { await notify.sendNotify(`「${$.name}」`, `${message}`); } })().catch((e) => $.logErr(e)).finally(() => $.done()); async function main(refreshToken) { const accessToken = await getAccessToken(refreshToken); if (!accessToken) { console.log('获取access_token失败, refresh_token可能有误'); return; } await $.wait(sudojia.getRandomWait(1200, 2000)); const signInCount = await AliSignIn(refreshToken, accessToken); // await $.wait(1000); // await getReward(accessToken, signInCount); } /** * 获取 access_token * * @returns {Promise} */ async function getAccessToken(refreshToken) { try { const params = { grant_type: 'refresh_token', refresh_token: refreshToken } const data = await sudojia.sendRequest(API_CONFIG.ACCESS_TOKEN_API, 'post', {}, params); if (!data.access_token) { console.log('获取access_token失败, refresh_token可能有误'); process.exit(0); } message += `【用户昵称】${data.nick_name}(${data.user_name})\n`; return data.access_token; } catch (e) { $.logErr('获取access_token接口异常:', e); return null; } } /** * 签到 * * @returns {Promise} */ async function AliSignIn(refreshToken, accessToken) { try { const params = { grant_type: 'refresh_token', refresh_token: refreshToken } const headers = { 'Content-Type': 'application/json', 'Authorization': `Bearer ${accessToken}` } const data = await sudojia.sendRequest(API_CONFIG.SIGN_IN_API, 'post', headers, params); console.log(data.success ? '签到成功\n' : '签到失败\n'); message += data.success ? '【签到状态】签到成功\n' : '【签到状态】签到失败\n' message += `【签到统计】已累计签到${data.result.signInCount}天\n\n`; // 返回签到天数 return data.result.signInCount; } catch (e) { $.logErr('请求签到接口异常:', e); return null; } } /** * 获取签到奖励 * * @returns {Promise} */ async function getReward(accessToken, signInCount) { const params = { signInDay: signInCount } const headers = { 'Content-Type': 'application/json', 'Authorization': `Bearer ${accessToken}` } const data = await sudojia.sendRequest(API_CONFIG.GET_REWARD_API, 'post', headers, params); console.log(`奖励: ${data.result.notice}\n`); message += `【签到奖励】${data.result.notice}\n` }