WPS实现京东、B站、阿里、夸克网盘自动签到

WPS执行多平台签到

前言

利用WPS在线文档实现自动签到京东、B站、阿里、夸克网盘。

 

原理

利用WPS脚本执行签到,使用自带定时任务实现自动化,利用pushplus(推送加)推送平台进行微信消息推送。

 

项目地址

https://github.com/nibabashilkk/alipan_auto_sign?tab=readme-ov-file

 

用到的平台

1、wps官网:https://www.kdocs.cn/

PS:使用微信打开金山文档在线小程序也可以。

2、pushplus(推送加):https://www.pushplus.plus/

PS:签到结果通过推送加公众号推送给你。登录后在顶部,发送消息->任意一个,点进去即可看到自己的token

 

操作步骤

配置表单

1、首先我们需要创建一个excel表格,空白的即可。

 

2、我们根据数据按下列顺序写上,A列按以下顺序,名称随意,但顺序不能变,B列相关Cookies获取方式在文章下面。

pushPlusToken -> pushplus(推送加)-微信消息推送平台
阿里云盘refreshToken - > 阿里云盘
B站cookie -> B站
夸克cookie -> 夸克
京东cookie - > 京东

 

配置脚本

1、创建签到脚本,首先复制以下代码,以此在WPS中点击 效率->高级开发->AirScript脚本编辑器(创建在 文档共享脚本 区域,不然无法实现定时任务)

这里我给脚本命名为:自动签到_共享,名称大家可以随意。

 

 

脚本代码如下:

脚本代码

let userAgent = "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/123.0.0.0 Safari/537.36 Edg/123.0.0.0"//pushPlus推送
function pushplus(pushPlusToken,title,content){
 let url = "http://www.pushplus.plus/send/"
 let body = {
   "token":pushPlusToken,
   "title":title,
   "content":content
}
 post(url,{
     userAgent:userAgent,
     'Content-Type': 'application/json'
  },body)
 Time.sleep(1000)
}//京东签到
function jdSign(cookie,pushPlusToken) {
 let url = "https://api.m.jd.com/client.action?functionId=signBeanAct&body=%7B%22fp%22%3A%22-1%22%2C%22shshshfp%22%3A%22-1%22%2C%22shshshfpa%22%3A%22-1%22%2C%22referUrl%22%3A%22-1%22%2C%22userAgent%22%3A%22-1%22%2C%22jda%22%3A%22-1%22%2C%22rnVersion%22%3A%223.9%22%7D&appid=ld&client=apple&clientVersion=10.0.4&networkType=wifi&osVersion=14.8.1"
 let data = post(url,{
   cookie:cookie,
   userAgent:userAgent
},null)
 if (data["code"]!="0"){
   pushplus(pushPlusToken,"京东每日签到","签到失败"+data["errorMessage"])
   console.log("签到失败"+data["errorMessage"])
}else{
   let dailyAward
   if (data["data"]["dailyAward"]!=null){
     dailyAward = data["data"]["dailyAward"]
  } else if (data["data"]["continuityAward"]) {
     dailyAward = data["data"]["continuityAward"]
  }
   pushplus(pushPlusToken,"京东每日签到",dailyAward["title"]+dailyAward["beanAward"]["beanCount"])
   console.log(dailyAward["title"]+dailyAward["beanAward"]["beanCount"])
}
}
//B站签到
function biliSign(cookie,pushPlusToken){
 let url = "https://api.live.bilibili.com/xlive/web-ucenter/v1/sign/DoSign"
 let data = get(url,{
   cookie:cookie,
   userAgent:userAgent
})
 if (data["code"]!=null){
   if (data["code"]==0){
     pushplus(pushPlusToken,"B站直播签到",data["data"]["text"])
     console.log(data["data"]["text"])
  }else{
     pushplus(pushPlusToken,"B站直播签到",data["message"])
     console.log(data["message"])
  }
}
}
//获取accessToken
function getAccessToken(refreshToken,pushPlusToken) {
 let url = "https://auth.aliyundrive.com/v2/account/token"
 let body = {
   "grant_type":"refresh_token",
   "refresh_token":refreshToken
}
 let data = post(url,{
     userAgent:userAgent,
     'Content-Type': 'application/json'
  },body)
 if (data["access_token"]==null){
   pushplus(pushPlusToken,"阿里云盘自动签到","refreshToken过期,请更改后重试")
   console.log("refreshToken过期,请更改后重试")
   return null
} else {
   return data["access_token"]
}
}
//获取签到次数
function signIn(accessToken,pushPlusToken) {
 let url = "https://member.aliyundrive.com/v1/activity/sign_in_list"
 let body = {
   "_rx-s":"mobile"
}
 let data = post(url,{
     'Content-Type': 'application/json',
     userAgent:userAgent,
     'Authorization':accessToken
  },body)
   if (data["result"]["signInCount"]!=null){
     return data["result"]["signInCount"]
  } else {
   return null
  }
}
//签到并获取奖励
function getReward(accessToken,signInCount,pushPlusToken) {
 let url = "https://member.aliyundrive.com/v1/activity/sign_in_reward?_rx-s=mobile"
 let body = {
   "signInDay":signInCount
}
 let data = post(url,{
     'Content-Type': 'application/json',
     userAgent:userAgent,
     'Authorization':accessToken
},body)
 if (data["result"]["notice"]!=null){
   return data["result"]["notice"]
} else {
   pushplus(pushPlusToken,"阿里云盘自动签到","获取奖励失败")
   console.log("获取奖励失败")
   return null
}
}
//阿里云盘签到入口
function aliPanSign(refreshToken,pushPlusToken) {
 let accessToken = getAccessToken(refreshToken,pushPlusToken)
 if (accessToken!=null){
   let signCount = signIn(accessToken,pushPlusToken)
   if (signCount!=null){
     let reward = getReward(accessToken,signCount,pushPlusToken)
     if (reward!=null){
       pushplus(pushPlusToken,"阿里云盘自动签到","签到成功,你已经签到"+signCount+"次,本次签到奖励————"+reward)
       console.log(reward)
    }
  }
}
}
//封装请求
function get(url,headers) {
 return HTTP.get(url, {
       headers: headers,
    }).json()
}function post(url,headers,data){
 return HTTP.post(url, typeof data == 'string' ? data : JSON.stringify(data), {
       headers: headers,
    }).json()
}
// 夸克网盘签到
function kkSign(cookie,pushPlusToken) {
 let url = "https://drive-m.quark.cn/1/clouddrive/capacity/growth/info?pr=ucpro&fr=pc&uc_param_str="
 let data = HTTP.fetch(url,{
   headers:{
     cookie:cookie,
     userAgent:userAgent
  },
   method:"GET"
}).json()
 let isSign = data["data"]["cap_sign"]["sign_daily"]
 if (isSign) {
   let reward = data["data"]["cap_sign"]["sign_daily_reward"]/(1024 * 1024)
   pushplus(pushPlusToken,"夸克网盘每日签到","今天已经签到过了,获得容量"+reward+"MB")
   console.log("今天已经签到过了,获得容量"+reward+"MB")
} else {
   let signUrl = "https://drive-m.quark.cn/1/clouddrive/capacity/growth/sign?pr=ucpro&fr=pc&uc_param_str="
   let body = {
     "sign_cyclic":"True"
  }
   let data = HTTP.fetch(signUrl,{
     method:"POST",
     headers:{
       cookie:cookie,
       userAgent:userAgent
    },
     body:JSON.stringify(body)
  })
   console.log(data)
   let reward = data["data"]["sign_daily_reward"] / (1024*1024)
   pushplus(pushPlusToken,"夸克网盘每日签到","签到成功,今日签到奖励"+reward+"MB")
   console.log("签到成功,今日签到奖励"+reward+"MB")
}
}
function main() {
 let sheet = Application.Sheets.Item("Sheet1") || ActiveSheet
 let pushPlusToken = sheet.Columns("B").Rows(1).Text
 let refreshToken = sheet.Columns("B").Rows(2).Text
 let biliCookie = sheet.Columns("B").Rows(3).Text
 let kkCookie = sheet.Columns("B").Rows(4).Text
 let jdCookie = sheet.Columns("B").Rows(5).Text
 if (refreshToken!=""){
   aliPanSign(refreshToken,pushPlusToken)
}
 if (biliCookie!=""){
   biliSign(biliCookie,pushPlusToken)
}
 if (kkCookie!=""){
   kkSign(kkCookie,pushPlusToken)
}
 if(jdCookie!=""){
   jdSign(jdCookie,pushPlusToken)
}
}
main()

 

2、接下来需要进行服务授权,把云文档、网络和邮件三个权限打开。

点击添加服务即可,添加成功则显示在已添加的服务既完成。

 

3、保存脚本后,在B列添加完相关Cookies后,点击运行查看结果是否正常。

我这里是所有信息配置后的结果演示,因为今天签到过了,所以结果不是签到成功。

脚本执行结果

微信推送界面

 

自动定时运行

WPS中点击 效率->高级开发->定时任务

设置一下时间,配置要运行的脚本即可,到此就结束了,大家愉快玩耍吧~

关于Cookies获取方式,请查阅其他文章。

THE END