今日校园提交签到和查寝-Java实现
2020年10月29日,今日校园闲得蛋疼,改了接口,文章中部分接口失效,最新接口点击下面源码链接,获取
之前未开学之前,是信息表采集,开学之后,改成了循环签到和查寝,那就想着再写个脚本
站在巨人的肩膀上,所以该代码全部开源,我也借鉴的大佬的东西,放在第三节致谢。有问题可以在下面进行留言讨论!
一、自动每日签到
1.1 思路
- 抓包(抓包的流程,可以参照我之前的文章)
- 每日接口获取最新表单
- 通过上步的id获取详细表单
- 通过上步获取该表单的选项id
如果整体的思路看不明白,可以参照下面的详细步骤
1.1 获取最新表单
接口
/wec-counselor-sign-apps/stu/sign/getStuSignInfosInOneDay
参数
{}
返回值
{
"code": "0",
"message": "SUCCESS",
"datas": {
"dayInMonth": "2020-09-10",
"codeRcvdTasks": [],
"signedTasks": [],
"unSignedTasks": [{
"stuSignWid": "746210",
"signInstanceWid": "4146", //需要
"signWid": "514213", //需要
"signRate": "1",
"taskType": "4",
"taskName": "一日三签(早签到)",
"senderUserName": "牛逼学院(牛逼老师)",
"signStatus": "2",
"isMalposition": null,
"isLeave": "0",
"leavePcUrl": null,
"leaveMobileUrl": null,
"currentTime": "2020-09-10 08:15",
"singleTaskBeginTime": null,
"singleTaskEndTime": null,
"rateSignDate": "2020-09-10 (周四)",
"rateTaskBeginTime": "05:00",
"rateTaskEndTime": "09:59"
}, {
"stuSignWid": "759720",
"signInstanceWid": "4199",
"signWid": "514234",
"signRate": "1",
"taskType": "4",
"taskName": "一日三签(午签到)",
"senderUserName": "牛逼学院(牛逼老师)",
"signStatus": "2",
"isMalposition": null,
"isLeave": "0",
"leavePcUrl": null,
"leaveMobileUrl": null,
"currentTime": "2020-09-10 08:15",
"singleTaskBeginTime": null,
"singleTaskEndTime": null,
"rateSignDate": "2020-09-10 (周四)",
"rateTaskBeginTime": "10:00",
"rateTaskEndTime": "15:59"
}, {
"stuSignWid": "778325",
"signInstanceWid": "4266",
"signWid": "535128",
"signRate": "1",
"taskType": "4",
"taskName": "一日三签(晚签到)",
"senderUserName": "牛逼学院(牛逼老师)",
"signStatus": "2",
"isMalposition": null,
"isLeave": "0",
"leavePcUrl": null,
"leaveMobileUrl": null,
"currentTime": "2020-09-10 08:15",
"singleTaskBeginTime": null,
"singleTaskEndTime": null,
"rateSignDate": "2020-09-10 (周四)",
"rateTaskBeginTime": "16:00",
"rateTaskEndTime": "22:00"
}],
"leaveTasks": []
}
}
其中我们需要获取signWid
514213和signInstanceWid
4146
1.2 获取详细信息
接口
/wec-counselor-sign-apps/stu/sign/detailSignInstance
参数
{
"signWid" : 514213,
"signInstanceWid" : 4146
}
返回值
{
"message" : "SUCCESS",
"datas" : {
"latitude" : "",
"singleTaskEndTime" : null,
"catQrUrl" : "https:\/\/cat.cpdaily.com\/erweima",
"singleTaskBeginTime" : null,
"signInstanceWid" : "4146",
"signPhotoUrl" : null,
"signTime" : null,
"senderUserName" : "牛逼学院(牛逼老师)",
"qrCodeRcvdUsers" : [
{
"targetWid" : "91457111",
"targetType" : "4",
"targetName" : "牛逼老师\/19070302",
"targetGrade" : "-1",
"targetDegree" : "-1",
"targetUserType" : "-1"
}
],
"isNeedExtra" : 1,
"signCondition" : 0,
"currentTime" : "2020-09-10 09:33:08",
"taskDesc" : "https:\/\/wecres.cpdaily.com\/counselor\/1018615876819107\/content\/54e503639d0244049c3b85baabe509fc.html",
"signType" : null,
"changeActorName" : "牛逼老师",
"isMalposition" : 0,
"longitude" : "",
"signedStuInfo" : {
"cls" : "20200521",
"major" : "改变世界专业-牛逼",
"dept" : "牛逼学院",
"sex" : "男",
"mobile" : null,
"nation" : "-",
"userWid" : "1017790009",
"userId" : "20200521",
"userName" : "雷军",
"malposition" : null,
"extraFieldItemVos" : [
{
"fieldIndex" : 0,
"extraDesc" : "",
"extraFieldItemWid" : "",
"extraTitle" : "体温",
"extraFieldItem" : null,
"isExtraFieldOtherItem" : "0",
"isAbnormal" : "0"
},
{
"fieldIndex" : 0,
"extraDesc" : "",
"extraFieldItemWid" : "",
"extraTitle" : "身体是否异常",
"extraFieldItem" : null,
"isExtraFieldOtherItem" : "0",
"isAbnormal" : "0"
}
],
"schoolStatus" : null,
"stuDormitoryVo" : {
"sex" : "",
"area" : "",
"building" : "",
"unit" : "",
"room" : ""
},
"grade" : "2019级"
},
"extraFieldItemVos" : [
],
"changeTime" : null,
"taskType" : "4",
"photograph" : [
],
"signRate" : "1",
"isPhoto" : 0,
"signAddress" : null,
"rateTaskEndTime" : "09:59",
"taskName" : "一日三签(早签到)",
"leaveAppUrl" : "\/wec-counselor-leave-apps\/leave\/home\/index.html",
"isAllowUpdate" : false,
"signMode" : 0,
"rateTaskBeginTime" : "05:00",
"signStatus" : "2",
"signPlaceSelected" : [
{
"address" : "只有野鸡学校才用这个流氓app(北界王西区)",
"radius" : 520,
"longitude" : "125.398185",
"placeWid" : null,
"creatorUserWid" : null,
"creatorName" : null,
"wid" : null,
"latitude" : "44.001709",
"currentStatus" : null,
"isShare" : null,
"creatorUserId" : null
},
{
"address" : "只有野鸡学校才用这个流氓app(北界王东区)",
"radius" : 500,
"longitude" : "125.40993457956229",
"placeWid" : null,
"creatorUserWid" : null,
"creatorName" : null,
"wid" : null,
"latitude" : "44.00262969203334",
"currentStatus" : null,
"isShare" : null,
"creatorUserId" : null
},
{
"address" : "只有野鸡学校才用这个流氓app(南界王校区)",
"radius" : 400,
"longitude" : "125.296568",
"placeWid" : null,
"creatorUserWid" : null,
"creatorName" : null,
"wid" : null,
"latitude" : "43.859918",
"currentStatus" : null,
"isShare" : null,
"creatorUserId" : null
}
],
"rateSignDate" : "2020-09-10 (周四)",
"extraField" : [
{
"hasOtherItems" : 0,
"title" : "体温",
"extraFieldItems" : [
{
"isSelected" : null,
"value" : null,
"content" : "37.3度以下",
"isOtherItems" : 0,
"wid" : 499882,//获取
"isAbnormal" : false
},
{
"isSelected" : null,
"value" : null,
"content" : "37.3度及以上",
"isOtherItems" : 0,
"wid" : 499883,
"isAbnormal" : true
}
],
"description" : "",
"wid" : 211814
},
{
"hasOtherItems" : 1,
"title" : "身体是否异常",
"extraFieldItems" : [
{
"isSelected" : null,
"value" : null,
"content" : "健康",
"isOtherItems" : 0,
"wid" : 499884,//获取
"isAbnormal" : false
},
{
"isSelected" : null,
"value" : null,
"content" : "感冒",
"isOtherItems" : 0,
"wid" : 499885,
"isAbnormal" : false
},
{
"isSelected" : null,
"value" : null,
"content" : "发烧",
"isOtherItems" : 0,
"wid" : 499886,
"isAbnormal" : false
},
{
"isSelected" : null,
"value" : null,
"content" : "咳嗽",
"isOtherItems" : 0,
"wid" : 499887,
"isAbnormal" : false
},
{
"isSelected" : null,
"value" : null,
"content" : "其它",
"isOtherItems" : 1,
"wid" : 499888,
"isAbnormal" : false
}
],
"description" : "",
"wid" : 211815
}
],
"downloadUrl" : "https:\/\/img.cpdaily.com\/ldy\/index.html"
},
"code" : "0"
}
获取我需要的两个参数,体温选项
499882和身体是否异常选项
499884
1.3 模拟提交
最后通过上面步骤获取到的4146,499882,499884以及自定义的地址,进行签到
接口
/wec-counselor-sign-apps/stu/sign/submitSign
参数
{
"abnormalReason": "",
"position": "你的地址",
"longitude": 你的经度,
"isNeedExtra": 1,
"latitude": 你的纬度,
"isMalposition": 0,
"extraFieldItems": [{
"extraFieldItemWid": 499882,
"extraFieldItemValue": "37.3度以下"
},
{
"extraFieldItemWid": 499884,
"extraFieldItemValue": "健康"
}
],
"signInstanceWid": "4146",
"signPhotoUrl": ""
}
返回值
{
"message" : "SUCCESS",
"datas" : {
"signedStuInfo" : null,
"signInstanceWid" : "4146"
},
"code" : "0"
}
1.4 运行结果
二、自动每日查寝
2.1 思路
- 抓包(抓包的流程,可以参照我之前的文章)
- 每日接口获取最新表单
- 通过上步的id获取详细表单
- 通过上步获取该表单的选项id
2.2 接口
获取最新查寝
/wec-counselor-attendance-apps/student/attendance/getStuAttendacesInOneDay
获取详细查寝
/wec-counselor-attendance-apps/student/attendance/detailSignInstance
提交查寝
/wec-counselor-attendance-apps/student/attendance/submitSign
2.3 随机图片
今日校园的图片,是存储到了阿里云。当然,你也可以尝试用代码实现自动往阿里云提交,但是我还是觉得太麻烦,就放弃了。
提交查寝时的参数
{
"signInstanceWid": "null",
"longitude": "null",
"latitude": "null",
"isMalposition": "null",
"abnormalReason": "null",
"signPhotoUrl": "null", //这个地方的图片链接,其实也可以放你自己服务器的图片链接,然后随机即可。
"position": "null",
"qrUuid": "null"
}
三、获取今日校园阿里云oss账号
3.1 前言
10月22日,学校换了新的签到,要拍照。
在提交今日校园照片的时候,无意间抓包到一系列数据,然后,看了阿里云oss的文档之后,顿时明白了许多。
终于知道为啥好多人挤破头颅都要去阿里了。
阿里,就是牛逼,就连上传的所有可能用到的比较人性化的功能(比方说上传进度条功能),都给整完了。
就连我这种菜鸡,都能拿来就可以用。
我曾经听过某大佬说,真正的开发者,写的代码,不仅条理清楚,还通俗易懂。这用来形容阿里再合适不过了。
这是不是就是真正的宗师境界呢?
原谅我太过激动,这也更让我坚定了,要努力学习,进大厂的愿望
3.2 正题
今日校园获取阿里云OSS的接口
/wec-counselor-sign-apps/stu/sign/getStsAccess
请求头中携带自己的cookie
获取如下信息,然后用id、secret、token,再结合阿里开源
{
"code": "0",
"datas": {
"accessKeyId": "STS.NV47ZBrGJfjlsj97t7VKWepMJvc",
"accessKeySecret": "6ZdSLF6T3JPCbQgqd3mTcqzbEh987829gksCaFxsdxdYK",
"securityToken": "CAIShAN1q6Ft5B2yfSjIr5WBfOD2n5hrgfufR235nFYeW+pcoo/dgTz228gnsibhnhsPw1m2xT6/cTlr0qEsIVGxybMpcutsoGqFP5JtKZ4pQdXmbqNdv3d1KIAjvXgeUFCoeQFaEME5XAQlTAkTAJK9KYERypQ12iN7CQlJdjda55dwKkbD1AdtU0Qwx5s501OGf2P/SgOQKI523LFxhQpxZbg2Fy4rjdusqH8UjygVn31uIyrYb8KYTGCs53J8VbUsyp5OVsarGjoClL8Epj/qBskIlZ/SvGptiHH2RJ5xKPP4iz9cZ0fit4fbQdEaxJp+Tn774a3NbejIPq0R1AEPhIWiDEPuCazdDDBfmiO6ReF9PyMG+f1cuUZNun8VFmQwpCbV4aJYp+dSMuUUJ9E2GCEML9pgCWODXEYrOezaQ73aByy1jV5teQLzCNOe7Ejn5HasRtNx1wbUFKhjGwI7V1eghNYk5hAK2OUYJwYRZRpKXlpwTOUTd6yXVarykzhQceaE91GoABUp6SSSSKU/bJ1rJtD536UCvZcYvsdl9eaDRwkSdFJhLlmd/jC6wpk1NUdqkDbRCs87xwfPZrdfL6AJXRxN0bXIR79q4M9s7tlqes+5iCDaXwsk5/MhIRE+asN6AM9YzOjlu2uftrxyvUsVqMbkBz8QCF+KrdLnSzvTQr1K+LdJQ\u003d",
"expiration": "2020-10-22T14:53:12Z",
"endPoint": "oss-cn-hangzhou.aliyuncs.com",
"bucket": "wecloud-res",
"fileName": "counselor/101820526o268269/content/2085lksj2jgwjoihggsljh.png"
},
"message": "SUCCESS"
}
此处我也遇到了很多问题,比方说有token经常报错不对,那就继续抓包,在上传照片的请求体重,会获得x-oss-security-token
再将token换成x-oss-security-token即可登录今日校园oss,当然,这并不是永久有效的,但是依然有最高权限,比方说删除之类~
注意:
不要乱删除内容哦~
附张成功登录oss之后的图