奈雪小程序任务脚本

[复制链接]
发表于 2025-7-27 16:39:58 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?立即注册

×
功能概述


  • 主动检测 Token 有用性
  • 主动签到(如果未签到)
  • 获取用户底子信息(昵称、手机号)
  • 查询当前奈雪币余额
  • 记录连续签到天数
  • 支持多账号执行,实用于 Node.js 脚本主动化平台(如青龙面板)定时运行。

使用方法


  • 设置情况变量 NAIXUE_TOKEN,内容为 Bearer Token(去掉 Bearer)。
  • 多账号用 & 或换行分隔。
  • 定时运行脚本。
完整代码实现

以下是完整的脚本代码:
  1. const init = require('init')
  2. const {$, notify, sudojia, checkUpdate} = init('奈雪点单');
  3. const crypto = require('crypto');
  4. const naiXueList = process.env.NAIXUE_TOKEN ? process.env.NAIXUE_TOKEN.split(/[\n&]/) : [];
  5. let message = '';
  6. // 接口地址
  7. const baseUrl = 'https://tm-web.pin-dao.cn'
  8. // openId
  9. const openId = 'AsaSsGzbziPlZwfiXM';
  10. !(async () => {
  11.     await checkUpdate($.name, naiXueList);
  12.     for (let i = 0; i < naiXueList.length; i++) {
  13.         const index = i + 1;
  14.         $.token = naiXueList[i];
  15.         console.log(`\n*****第[${index}]个${$.name}账号*****`);
  16.         const isLogin = await baseUserInfo();
  17.         if (!isLogin) {
  18.             console.error(`Token 已失效`);
  19.             await notify.sendNotify(`【Token失效通知】`, `${$.name}账号[${index}] Token 已失效,请重新登录获取 Token\n\n`);
  20.             continue;
  21.         }
  22.         message += `📣====${$.name}账号[${index}]====📣\n`;
  23.         message += `${$.nickName}(${$.mobile})\n`;
  24.         await $.wait(sudojia.getRandomWait(800, 1200));
  25.         await main();
  26.         await $.wait(sudojia.getRandomWait(2000, 2500));
  27.     }
  28.     if (message) {
  29.         await notify.sendNotify(`【${$.name}】`, `${message}`);
  30.     }
  31. })().catch((e) => $.logErr(e)).finally(() => $.done());
  32. // ... 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 语法):
留意事项

本文部分仅用于测试和学习研究,克制用于商业用途,不能保证其合法性、正确性、完整性和有用性,请根据情况自行判定。
回复

使用道具 举报

登录后关闭弹窗

登录参与点评抽奖  加入IT实名职场社区
去登录
快速回复 返回顶部 返回列表