每天挖矿,说实话,太累了,特别是经历过10月份的挖矿,后来发现,大家都是在用postman再跑,才意识到这就是前端调用接口啊
先看看我做的页面吧(摸鱼)
长话短说,开始看看调用了哪些接口
1、接口
通过token获取基本信息,
这里可以拿到后面需要的uid;
开始(选角色)
/* 开始 */
/**
*
* @param {*} params { roleId: 3 }
* @param {*} uid
* @param {*} time
* @returns
*/
export function start(params, uid, time) {
return request({
url: `/game/sea-gold/game/start?uid=${uid}&time=${time}`,
method: "post",
data: params,
});
}
发出指令
/**
* 发布指令
* @param {*} params
* @param {*} uid
* @param {*} time
* @returns
*/
export function command(params, uid, time, xGameId) {
return request({
url: `/game/sea-gold/game/command?uid=${uid}&time=${time}`,
method: "post",
data: params,
headers: {
"Content-Type": "application/json;charset=UTF-8",
"x-tt-gameid": xGameId,
},
});
}
结束游戏
/**
* 结束
* @param {*} params {"isButton":1}
* @param {*} uid
* @param {*} time
* @returns
*/
export function over(params, uid, time) {
return request({
url: `/game/sea-gold/game/over?uid=${uid}&time=${time}`,
method: "post",
data: params,
});
}
更换地图(点击重新开始后再点击开始)
/**
* 换图重来
* @param {*} params {}
* @param {*} uid
* @param {*} time
* @returns
*/
export function freshMap(params, uid, time) {
return request({
url: `/game/sea-gold/game/fresh_map?uid=${uid}&time=${time}`,
method: "post",
data: params,
});
}
彩蛋(已不在活动时间内)
获取游戏记录
/**
* 获取历史记录
* @param {} uid
* @param {*} time
* @returns
*/
export function getRecord(uid, time) {
return request({
url: `/game/sea-gold/user/record?uid=${uid}&time=${time}`,
method: "get",
});
}
2、调用
我们发现所有接口必须要token以及两个查询参数: time以及uid,基本上可以调用成功,time直接是本地时间戳就可以了
const time = +new Date().getTime()
但是唯独发出指令的接口,也就是步骤需要x-game-id; 在《图解http》(我购买了纸质书,下面截图为pdf)一书中,有如下描述
所以说,我必须知道x-game-id是怎么来的? 我在以前的沸点中,是通过向上走一步,获取到x-game-id,再用postman调用,有点麻烦!!!
有人告诉我加密方式,突然知道了怎么搞,一直没有时间去想,后来出了圣诞活动,决定花点时间(摸鱼)搞下
1、先打开控制台,然后再打开游戏;
在NetWork中我们可以知道这个js文件,它就是执行脚本的主要文件 不要问我怎么找的,就是一个一个看
2、我们点击格式化
3、然后搜索gameID
定位到这段相关的代码后,我们了解到这就是我们要的加密方式:
4、搜索ES256
ok了,这下我们就可以自己去调用了
问题又来了,time是当前时间戳,可是gameID是什么东西,刚开始我以为是uid,在postman试了下,不出意外,报错了 人总是到关键时刻,把自己绕进去了,都忘记打断点了
在network——这个文件中,点击右键——Open in Sources Panel
来试试强大的debugger吧,js文件过大,浏览器卡死
js文件过大,浏览器卡死
js文件过大,浏览器卡死
。。。。。。。
清了其他文件
可以了(垃圾电脑)
可以看到gameId是时间,可是这是哪里来的,
我们在开始的接口中,可以看到返回的gameId,自此我们可以实现自己去调用游戏接口了
5、彩蛋
活动已结束
3、总结
按照现有的逻辑是可以再github action自动跑的,但是我暂时没有处理(懒)
另外,代码暂时就不贴出来了,吾爱破解现在也是不发破解的东西了,只做分析,
圣诞活动让我从24万矿石,到了42万了,距离兑换游戏机还差14万。。。。
4、TODO
后续会放在github,然后使用action跑代码