关于wps 阿里云盘自动每日签到分享学习经验
本帖最后由 aichiyu 于 2023-10-3 23:35 编辑我是一个小白。
不过喜欢研究。
那么直接入主题,分享下我简单的理解。
https://www.52pojie.cn/thread-1811357-1-1.html
var tokenColumn = "A"; // 设置列号变量为 "A"
设置变量为A,方便使用单元格,例如A1 A2
for (let row = 2; row <= 20; row++) {
}
这个是做循环,从2开始,大于等于20结束,依此累计加1。
var refresh_token = Application.Range(tokenColumn + row).Text; // 获取指定单元格的值
这个就是赋值给refresh_token,他的值是上面循环A2 A3...到A20。
if (refresh_token != "") {
}
判断是否是空值
如果不等于空才允许
---------------------------
这里可以学习AirScript
https://airsheet.wps.cn/docs/start/quickstart.html
---------------------------
签到需要外部的请求API
看这里
https://airsheet.wps.cn/docs/api/advanced/HTTP.html
--------------------------
添加邮箱
https://airsheet.wps.cn/docs/api/advanced/SMTP.html
--------------------------
那么说个案例。
let tokenColumn = "A"; // 设置变量为A
let zhanghao = "B";
let smtp_mail = Application.Range("D1").Text; // SMTP服务器域名
let port_mail = parseInt(Application.Range("D2").Text); // port
let mail_mail = Application.Range("D3").Text; // 发送邮箱地址
let mima_mail = Application.Range("D4").Text; // 邮箱SMTP密码
let jieshou_mail = Application.Range("F1").Text; // 接受邮箱
let wangzhan = Application.Range("H1").Text; // 网站
for (let row = 2; row <= 10; row++) { // 做2-20的循环
let refresh_token = Application.Range(tokenColumn + row).Text; // 设置变量refresh_token的文本为A加上循环的次数
let tz = Application.Range(zhanghao + row).Text;
if (refresh_token != "") { // 如果变量refresh_token位置为不为空时,发起POST请求
let resp = HTTP.fetch(wangzhan +"/user/checkin", { //请求的网站,例如论坛签到的链接www.52pojie.cn/home.php?mod=task&do=apply&id=2 改为wangzhan +"/home.php?mod=task&do=apply&id=2", 在对应let wangzhan = Application.Range("H1").Text; // 写入网站地址
method: "POST",
timeout: 2000,
headers: {
"Accept": "application/json, text/javascript, */*; q=0.01",
"X-Requested-With": "XMLHttpRequest",
"sec-ch-ua-mobile": "?0",
"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36 Edg/116.0.1938.69",
"Origin": wangzhan,
"Referer": wangzhan +"/user",
"Accept-Encoding": "gzip, deflate, br",
"Accept-Language": "zh-CN,zh;q=0.9,en;q=0.8,en-GB;q=0.7,en-US;q=0.6",
"Cookie": refresh_token
},
body: JSON.stringify({})
});
if (resp.status !== 200) {
throw new Error("fetch err! status is " + resp.status);
}
// 使用resp.text()来获取响应内容
let text3 = resp.text();
let text2; // 新增的变量
// 检查响应文本并设置相应的消息
if (text3.includes("dQ")) { //这里是因为签到返回的出现乱码我只能根据部分信息来判断,有大佬可以教下。这里的意思是如果包含就返回对应的值。
text2 = "你已经签到过了。";
} else if (text3.includes("RXJB")) {
text2 = "签到成功。";
} else {
text2 = "未知响应内容:" + text3;
}
// 发送邮件
mailer = SMTP.login({
host: smtp_mail,
port: port_mail,
username: mail_mail,
password: mima_mail,
secure: true
});
mailer.send({
from: "xxx签到<"+ mail_mail + ">",
to: jieshou_mail, //如果是通知不相同的邮箱可以写to: tz,
subject: "xxx签到通知 - " + tz,
text: "账号"+ " " + tz + " " + text2,
});
// 打印消息
console.log("账号"+ " " + tz + " " + text2);
}
}
这个差不多用cookie签到最基本方法。
其实只要知道逻辑就很简单了。
签到需要发起请求,请求需要cookie,签到完成之后发送邮箱。
变量就像一个个箱子,你需要表明这些箱子的位置,有时候要提取他有时候要写入他。 现在的签到已经不能通过这种简单方式来实现了,每天的任务特别复杂,尤其是最近的开启自动备份并持续至少一小时,像这种已经不是简单的抓个包就能完成了,其它的任务都有解,唯独本月新增的这个变态任务无解,需要手动登录APP账号执行,不知道有没有高手有思路,已尝试抓取从打开APP后签到完成的所有数据包,但就是没找到一个有效的完成该任务请求,真是无语,自动化已经越来越难了{:1_937:} 复制粘贴使用吗? 思路很清晰,学习了。感谢分享。 {:1_896:}上次整那个啥自动签到脚本,没几天就把俺邮箱给封了,说我发垃圾邮件 感谢分享,整体思路逻辑通顺,向你学习 之前有个大佬发的自动签到,用了一段时间,现在是失效了吗?{:1_907:}每天都没有自动签到成功。 这个很简便的,鉴定 我一直好奇你们用WPS的签到是签来干嘛的。。。。。。 不会,小白 经管之家,qq登录,每天自动签到,如何实现?