今日校園提交簽到和查寢-Java實現


2020年10月29日,今日校園閑得蛋疼,改了接口,文章中部分接口失效,最新接口點擊下面源碼鏈接,獲取

之前未開學之前,是信息表采集,開學之后,改成了循環簽到和查寢,那就想着再寫個腳本

站在巨人的肩膀上,所以該代碼全部開源,我也借鑒的大佬的東西,放在第三節致謝。有問題可以在下面進行留言討論!

博客地址

一、自動每日簽到

源碼

1.1 思路

  1. 抓包(抓包的流程,可以參照我之前的文章
  2. 每日接口獲取最新表單
  3. 通過上步的id獲取詳細表單
  4. 通過上步獲取該表單的選項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": []
	}
}

其中我們需要獲取signWid514213和signInstanceWid4146

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 思路

  1. 抓包(抓包的流程,可以參照我之前的文章
  2. 每日接口獲取最新表單
  3. 通過上步的id獲取詳細表單
  4. 通過上步獲取該表單的選項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之后的圖

四、致謝

  1. ZimoLoveShuang


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM