阿里盘签到
1.打开【金山文档-阿里云盘自动签到模板】:https://kdocs.cn/l/cgUAOWCTQGhB
2.点击左上角三条杠图标,另存到自己的金山文档中
如图所示:
3.获取阿里云盘Token:获取Token、Cookie教程
4.把获取到的Token粘贴到【Token1】中
(如有多个账号,就依次获取并粘贴在Token2及下边的表格里,每行一个)
5.打开PUSHPLUS推送官网:https://www.pushplus.plus
(第5.6.7步是为了签到后成功与否将消息推送给你,不需要通知的朋友可以跳过)
6.微信扫码登录后,点击【发送消息】-【一对一消息】,一键复制你的Token
如图所示:
7.把复制到的内容替换到表格的【pushplustoken】中
如图所示:
8.点击上方的【效率】-【高级开发】-【AirScript脚本编辑器】
如图所示:
9.正常情况下已经有一个脚本了,有了就跳到第12步
10.如果没有就点击【创建脚本】-【文档共享脚本】,名字随意起一个
11.复制以下脚本代码粘贴到脚本编辑器中,然后保存
var myDate = new Date(); // 创建一个表示当前时间的 Date 对象
var data_time = myDate.toLocaleDateString(); // 获取当前日期的字符串表示
function sleep(d) {
for (var t = Date.now(); Date.now() - t <= d;); // 使程序暂停执行一段时间
}
function log(message) {
console.log(message); // 打印消息到控制台
// TODO: 将日志写入文件
}
var tokenColumn = "A"; // 设置列号变量为 "A"
var qiandaoColumn = "B"; // 设置列号变量为 "B"
var serverchanColumn = "C"; // 设置列号变量为 "C"
var pushplusColumn = "D"; // 设置列号变量为 "D"
var pushColumn = "E"; // 设置列号变量为 "E"
var logindateColumn = "G"; // 设置列号变量为 "G"
for (let row = 1; row <= 10; row++) { // 循环遍历从第 1 行到第 10 行的数据
var refresh_token = Application.Range(tokenColumn + row).Text; // 获取指定单元格的值
var qiandao = Application.Range(qiandaoColumn + row).Text; // 获取指定单元格的值
var servertoken = Application.Range(serverchanColumn + row).Text; // 获取指定单元格的值
var pushtoken = Application.Range(pushplusColumn + row).Text; // 获取指定单元格的值
var push = Application.Range(pushColumn + row).Text; // 获取指定单元格的值
var ldate = Application.Range(logindateColumn + row).Text; // 获取指定单元格的值
if (refresh_token != "") { // 如果刷新令牌不为空
if (qiandao == "是") {//签到&领奖开关
//获取Bearer-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) { // 如果报错
console.log("单元格【" + tokenColumn + row + "】token执行出错,请检查token或者API接口");
continue; // 跳过当前行的后续操作()
}
Time.sleep(3000)
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(); // 将响应数据解析为 JSON 格式
var signin_count = data2['result']['signInCount']; // 获取签到次数
var result1 = "账号:" + phone + " - 签到成功";
var result2 = "本月累计签到 " + signin_count + " 天";
console.log(result1)
}catch (error) {
console.log("单元格【" + tokenColumn + row + "】签到出错,请检查API接口");
continue; // 跳过当前行的后续操作()
}
Time.sleep(3000)
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(); // 将响应数据解析为 JSON 格式
var result3 = data3["result"]["name"]; // 获取奖励名称
var result4 = data3["result"]["notice"]; // 获取奖励描述
console.log(result4)
}catch (error) {
console.log("单元格【" + tokenColumn + row + "】领奖出错,请手动确认");
continue; // 跳过当前行的后续操作()
}
var loginnotice ="" //25天登陆提醒
var ldate = Application.Range(logindateColumn + row).Text; // 获取指定单元格的值
if (ldate !== '') {
Application.Range(logindateColumn + row).NumberFormat = 'yyyy-mm-dd;@'
var formatlogindate = Application.Range(logindateColumn + row).Text
console.log(formatlogindate)
function formatDateTime(date) {
const year = date.getFullYear();
const month = date.getMonth() + 1;
const day = date.getDate();
return `${year}-${pad(month)}-${pad(day)} `;
}
function pad(num) {
return num.toString().padStart(2, '0');
}
const currentDate = new Date();
var formacurrentdate=formatDateTime(currentDate);
console.log(formacurrentdate)
function getDate(strDate){
if(strDate==null||strDate===undefined) return null;
var date = new Date();
try{
if(strDate == undefined){
date= null;
}else if(typeof strDate == 'string'){
strDate = strDate.replace(/:/g,'-');
strDate = strDate.replace(/ /g,'-');
var dtArr = strDate.split("-");
if(dtArr.length>=3&&dtArr.length<6){
date=new Date(dtArr[0], dtArr[1], dtArr[2]);
}else if(date.length>8){
date=new Date(Date.UTC(dtArr[0],dtArr[1]-1,dtArr[2],dtArr[3]-8,dtArr[4],dtArr[5]));
}
}else{
date = null;
}
return date;
}catch(e){
alert('格式化日期出现异常:' + e.message);
}
}
var timeslong = getDate(formacurrentdate).getTime()-getDate(formatlogindate).getTime();
console.log(timeslong)
if (timeslong >2160000000){//时间差单位毫秒
var loginnotice = "登录已超25天注意token失效";
}
}
//推送
if (servertoken !== '' && push == "Serverchan") {//serverchan通道推送
const urls = "https://sctapi.ftqq.com/" + servertoken + ".send"
let response = HTTP.post(
urls,
{
title: result1,
desp: ''+result2+'\n\n'+result4+'\n\n'+loginnotice+'',
},
{
headers: {
"Content-Type": "application/json",
},
timeout: 60000, // 设置超时时间
}
);
// 打印推送结果
console.log(response.text());
}
if (pushtoken !== '' && push == "Pushplus") {//pushplus通道推送
const urlp = "http://www.pushplus.plus/send"
let response = HTTP.post(
urlp,
{
"token": pushtoken,
"title": "阿里云盘-签到通知",
"content": '' + result1 + '\n' + result2 + '\n' + result4 + '\n' + loginnotice + '',
"channel": "wechat",
"template": "html"
},
{
headers: {
"Content-Type": "application/json",
},
timeout: 60000, // 设置超时时间
}
);
// 打印推送结果
console.log(response.text());
}
}
}
//无有效token
}
如图所示:
12.点击上方【服务授权】按钮,添加【云文档API】和【网络API】两个服务
如图所示:
13.点击运行,测试一下脚本(可能会出来个授权窗口,点允许就对了)
14.再看看下方的日志,显示成功就OK了
如图所示:
15.关闭脚本编辑器,再点击【效率】-【高级开发】-【定时任务】-【创建任务】
如图所示:
16.设置每天启动,在下方选择刚刚设置的脚本,点击确认就大功告成了
如图所示:
评语 (0)