用金山文档WPS的每日定时任务脚本教你阿里云盘自动每日签到(双脚本)
阿里云盘因为不限速下载,短短一两年收获了很多用户,再加上每天都有签到得奖励的活动,所以很受青睐。但签到这个东西,每天都要来一次,也是比较浪费时间,偶有断签就不能得到全签奖励。今有大佬写出了阿里云盘自动签到脚本,经测试完全可行,而且无需部署,无需服务器,感谢他。唯有一点每月需更新一次阿里云盘Token。现将部署定时任务的方法借花献佛,感兴趣的一起来看看吧!

详细步骤:
一、阿里云盘refresh_token获取
打开阿里云盘网页端用自己的云盘帐号登录,按键盘【F12】-【应用程序】-【本地存储】-【token】-【refresh_token】,如果你按F12唤起开发工具后是英文,即Application - LOCalStorage - token - refresh_token。复制refresh_token后面双引号里面的值即可。

注意:这一步每月需要获取一次,因为每月会变换一次。
1、打开金山文档网页版用自己的帐号登陆。

2、随便新建一个空表格,点击【效率】-【高级开发】-【AIrScrIPt脚本编辑器】,再点击【创建脚本】-【文档共享脚本】,创建后随便命名,比如命名为【阿里云盘自动签到】



3、添加脚本服务。点击【服务】-【添加服务】-【将三个服务全部添加】

4、将下方两种代码任选其一添加到编辑器中。
代码一:极简版(注意替换上面你自己的refresh_token值,就是我们第一步中获取的一串字符串值。)
/ 阿里云盘自动签到领取奖励(极简版)
// 将如下的xxxxxxxx替换成自己的refresh_token值
var refresh_token = "xxxxxxxx"
if(refresh_token != ""){
let res = http.post
("https://auth.aliyundrive.com/v2/account/token",
JSON.stringify({
"grant_type": "refresh_token",
"refresh_token":refresh_token
})
)
res = res.json()
var access_token = res['access_token']
if(access_token == undefined){
console.log("refresh_token错误,请重新填写refresh_token")
}else{
try{
let res2 = HTTP.post
("httPS://member.aliyundrive.com/v1/activITy/sign_in_list",
JSON.stringify({"_rx-s": "mobile"}),
{headers:{"Authorization":'Bearer '+access_token}}
)
res2=res2.json()
var signInCount = res2['result']['signInCount']
console.log("账号:" + res["user_name"] + "-签到成功, 本月累
计签到" + signInCount + "天")
}catch{
console.log("refresh_token签到失败")
}
sleep(1000)
// 领取奖励
try{
let res3 = HTTP.post
("https://member.aliyundrive.com/v1/activity/sign_in_reward?_rx-
s=mobile",
JSON.stringify({
"signInDay": signInCount
}),
{headers:{"Authorization":'Bearer '+access_token}}
)
res3=res3.json()
console.log("签到获得" + res3["result"]["name"] + "," + res3
["result"]["description"])
}catch{
console.log("领取奖励失败")
}
}
}
function sleep(d){
for(var t = Date.now(); Date.now() - t <= d; );
}然后【保存】,点击【运行】进行测试。日志框中出现成功说明步骤正确。直接转到下面三、布署定时任务。

代码二:完全版(含邮件通知,使用此版本需要替换代码中的邮箱相关帐户及密码,不配置邮箱虽然运行报错但不影响签到功能)
var myDate = new Date();
var data_time = myDate.toLocaleDateString()
function sleep(d){
for(var t = Date.now();Date.now() - t <= d;);
}
var value= ""
for (let ii = 2; ii <= 20; ii++){
dyg = "A"+ii
var refresh_token = Application.Range(dyg).Text
if(refresh_token != ""){
// 发起网络请求-获取token
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){
var value ="单元格【"+dyg+"】内的token值错误,程序执行失败,
请重新复制正确的token值"+"\n"
}else{
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()
var signin_count = data2['result']['signInCount']
var value =value+ "账号:"+data["user_name"]+"-签到成功, 本
月累计签到"+ signin_count+"天"+"\n"
}catch{
var value ="单元格【"+dyg+"】内的token签到失败"+"\n"
return
}
sleep(1000)
var sflq = Application.Range("B"+ii).Text
if (sflq == "是"){
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()
var value = value +"本次签到获得"+data3["result"]["name"]
+","+data3["result"]["description"]+"\n"
}catch{
var value = value+ "账号:"+data["user_name"]+"-领取
奖励失败"+"\n"
}
}else{
value = value +" 奖励待领取"+"\n"
}
}
}
}
console.log(value)
var sftz = Application.Range("E"+1).Text
if (sftz=="是"){
var jsyx = Application.Range("E"+2).Text
var zdyfs = Application.Range("H"+1).Text
if (zdyfs == "是"){
var zdy_host = Application.Range("H"+2).Text
var zdy_post =Number(Application.Range("H"+3).Text)
var zdy_username = Application.Range("H"+4).Text
var zdy_pasd = Application.Range("H"+5).Text
}else{
var zdy_host = "smtp.163.com"
var zdy_post = 465
var zdy_username = "fs8484848@163.com"
var zdy_pasd = "QADSEMPKDHDAVWVD"
}
// 配置发送邮箱
let mailer = SMTP.login({
host: zdy_host, // 邮箱 的SMTP服务器的域名
port: zdy_post,
username: zdy_username, // 邮箱地址
password:zdy_pasd, // 邮箱的SMTP密码
secure: true
});
if(jsyx != "fs8484848@163.com"){
try{
mailer.send({
from: "阿里云盘签到<"+zdy_username+">", // 发件人
to: jsyx, // 收件人
subject: "阿里云盘签到通知-"+data_time, // 主题
text: value, // 文本
})
}catch(error){
console.log("发送邮件失败"+error)
}
}else{
console.log("不可发送至该邮箱")
}
}用此代码的需要在上面建的表格中填以下值。(A2-A20)可以写入多个账号的refresh_token值来实现多账号自动签到。填写是否领取奖励(是,自动领取签到奖励,否,只签到,需要自己手动领取签到奖励);填写是否发送邮箱通知,发送邮箱通知的话,要写入接收邮箱的地址,不发送就不用写。然后【保存】,点击【运行】进行测试。日志框中出现成功说明步骤正确。

三、布署定时任务
1、关闭代码编辑框,点击【效率】-【高级开发】-【定时任务】-【创建任务】

2、设置每天运行的时间,选择刚刚选择的脚本,保存。此时就完成了每天你指定的时间阿里云盘的自动签到。

以上如果有什么不明的,欢迎留言评论。最后再强调一点,由于阿里云的token每月会变换一次。所以需要你手工再来获取一次。





