马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有账号?立即注册
×
功能概述
- 主动检测 Token 有用性
- 主动签到(如果未签到)
- 获取用户底子信息(昵称、手机号)
- 查询当前奈雪币余额
- 记录连续签到天数
- 支持多账号执行,实用于 Node.js 脚本主动化平台(如青龙面板)定时运行。
使用方法
- 设置情况变量 NAIXUE_TOKEN,内容为 Bearer Token(去掉 Bearer)。
- 多账号用 & 或换行分隔。
- 定时运行脚本。
完整代码实现
以下是完整的脚本代码:- const init = require('init')
- const {$, notify, sudojia, checkUpdate} = init('奈雪点单');
- const crypto = require('crypto');
- const naiXueList = process.env.NAIXUE_TOKEN ? process.env.NAIXUE_TOKEN.split(/[\n&]/) : [];
- let message = '';
- // 接口地址
- const baseUrl = 'https://tm-web.pin-dao.cn'
- // openId
- const openId = 'AsaSsGzbziPlZwfiXM';
- !(async () => {
- await checkUpdate($.name, naiXueList);
- for (let i = 0; i < naiXueList.length; i++) {
- const index = i + 1;
- $.token = naiXueList[i];
- console.log(`\n*****第[${index}]个${$.name}账号*****`);
- const isLogin = await baseUserInfo();
- if (!isLogin) {
- console.error(`Token 已失效`);
- await notify.sendNotify(`【Token失效通知】`, `${$.name}账号[${index}] Token 已失效,请重新登录获取 Token\n\n`);
- continue;
- }
- message += `📣====${$.name}账号[${index}]====📣\n`;
- message += `${$.nickName}(${$.mobile})\n`;
- await $.wait(sudojia.getRandomWait(800, 1200));
- await main();
- await $.wait(sudojia.getRandomWait(2000, 2500));
- }
- if (message) {
- await notify.sendNotify(`【${$.name}】`, `${message}`);
- }
- })().catch((e) => $.logErr(e)).finally(() => $.done());
- // ... existing code ...
复制代码 功能说明
方法列表
方法名作用形貌baseUserInfo()校验当前用户 Token 是否有用,获取用户昵称、手机号等底子信息queryAndHandleSignIn()查询当前是否已签到,未签到则调用 performSignIn() 执行签到performSignIn(nowDate)执行当天的签到操作(POST 提交签到日期)queryUserCoin()查询用户当前奈雪币余额与连续签到天数sendRequest(apiOptions)所有接口请求的封装方法,主动附带签名和通用参数getBody()天生请求签名和布局,包罗 HMAC-SHA1 签名逻辑和时间戳randomString()天生用于签名的 nonce 随机字符串(默认6位)formatDate(date)格式化日期为 YYYY-MM-DD 格式,用于签到接口参数关键变量
变量名说明NAIXUE_TOKEN情况变量,内容是 Bearer Token(去掉 Bearer)$.token当前用户的 token,用于 Authorization$.signCount连续签到的天数$.nickName当前用户昵称$.mobile当前用户手机号openId固定写死的 openId,签名盘算必要执行流程图
以下是脚本的主要执行流程(Mermaid 语法):
留意事项
本文部分仅用于测试和学习研究,克制用于商业用途,不能保证其合法性、正确性、完整性和有用性,请根据情况自行判定。
|