在昨天發(fā)過(guò)的 如何獲得微信小游戲跳一跳源碼 的文章中,記錄了我個(gè)人在獲取微信小游戲跳一跳源碼中的實(shí)踐。
跟大家在交流中很多人說(shuō)源碼是壓縮過(guò)的可讀性很差,拿到源碼也沒(méi)有意義。但是其實(shí)只要將代碼格式化后,代碼的可讀性還是很高的,而且通過(guò)微信開(kāi)發(fā)工具斷點(diǎn)調(diào)試,一些邏輯還是很容易梳理清楚的。

上圖就是通過(guò)斷點(diǎn)調(diào)試找到了最終提交 score 的網(wǎng)絡(luò)請(qǐng)求
另外問(wèn)的最多的就是目前小游戲無(wú)法進(jìn)行網(wǎng)絡(luò)請(qǐng)求的問(wèn)題,如下圖

這是因?yàn)椴还苁切∮螒蜻€是小程序,網(wǎng)絡(luò)請(qǐng)求都是受到限制的,需要在微信公眾平臺(tái)中注冊(cè)合法的服務(wù)器域名,如下圖所示

但是目前小游戲還沒(méi)有開(kāi)放注冊(cè),所以是無(wú)法進(jìn)行服務(wù)器域名配置的,而微信開(kāi)發(fā)工具提供的測(cè)試小游戲 APP ID 是 wx6ac3f5090a6b99c5 是沒(méi)有配置任何的服務(wù)器域名的

但是在萬(wàn)能的抓包工具Charles 幫助下,是可以打破這個(gè)限制的
對(duì) Charles 不太了解的可以參考一下這篇文章
首先打開(kāi) Charles 并運(yùn)行 Charles 對(duì)本地電腦進(jìn)行 HTTPS 抓包,因?yàn)閷?duì) HTTPS 進(jìn)行抓包需要安裝證書(shū),具體的操作步驟請(qǐng)參考Charles 從入門到精通
之后打開(kāi)微信開(kāi)發(fā)工具,然后新建一個(gè)項(xiàng)目,使用 wx6ac3f5090a6b99c5 做為 APP ID,這是微信默認(rèn)小游戲測(cè)試開(kāi)發(fā) ID,然后新建一個(gè)空的小游戲項(xiàng)目,點(diǎn)擊確定之后,查看 Charles 的控制臺(tái)
找到以下的訪問(wèn)請(qǐng)求
https://servicewechat.com/wxa-dev-logic/batchgetappattr

查看該請(qǐng)求的返回包體,會(huì)發(fā)現(xiàn)默認(rèn)返回的服務(wù)器域名是空數(shù)組

在這里只要使用 Charles 的 Map 功能在請(qǐng)求返回的 reponse 信息里面,加入我們想訪問(wèn)的服務(wù)器域名,就可以突破微信開(kāi)發(fā)工具對(duì)小游戲網(wǎng)絡(luò)請(qǐng)求的限制了
在 Charles 的菜單中,選擇 “Tools”-> “Map Local” 即可進(jìn)入到相應(yīng)功能的設(shè)置頁(yè)面

然后在對(duì)應(yīng)配置選項(xiàng)中輸入以下信息,本地的 reponse 文件可以參考 這里

完成以上配置之后,退出微信開(kāi)發(fā)者工具,再打開(kāi)剛才新建立的項(xiàng)目,就會(huì)發(fā)現(xiàn)此時(shí)的項(xiàng)目設(shè)置里面已經(jīng)有了我們想要添加的服務(wù)器域名了

而且調(diào)試小游戲的網(wǎng)絡(luò)模塊,發(fā)現(xiàn)網(wǎng)絡(luò)是可以進(jìn)行的訪問(wèn)的

目前小游戲還沒(méi)有開(kāi)放注冊(cè),但是可以先通過(guò)這種方式突破小游戲?qū)τ诰W(wǎng)絡(luò)請(qǐng)求的訪問(wèn)限制,提前進(jìn)行開(kāi)發(fā)。