Github地址:https://github.com/icecooly/WeixinAutoChat
第一坑:網(wǎng)頁(yè)微信怎么抓包?
mac下推薦使用Charles
image.png
image.png
image.png
(注意:一定不能開(kāi)啟VPN筹误,否則抓不了包,這里差點(diǎn)坑死我了)
第二坑:rr
有幾個(gè)接口是需要rr(時(shí)間戳取反)
int now=(int) System.currentTimeMillis();
return (~now)+"";
第三坑:syncCheck報(bào)錯(cuò)
https://webpush.wx.qq.com/cgi-bin/mmwebwx-bin/synccheck
https://webpush.wx2.qq.com/cgi-bin/mmwebwx-bin/synccheck
這個(gè)接口因?yàn)閾Q了host癣缅,cookie需要自己帶上厨剪,否則會(huì)報(bào)錯(cuò)
我使用的是Okhttp3
addHeader("cookie", WxCookieJar.cookieHeader());
第四坑:webwxsync返回的消息數(shù)量一直在增加
最終發(fā)現(xiàn)是DeviceID的問(wèn)題,原來(lái)以為DeviceID是固定的友存,沒(méi)想到是每次都隨機(jī)
this.DeviceID="e"+StringUtil.randomNumbers(15);
第五坑:wx.qq.com和wx2.qq.com
剛開(kāi)始一直都使用wx2.qq.com,但發(fā)現(xiàn)換了一個(gè)微信就不行了
原來(lái)每個(gè)微信對(duì)應(yīng)的接口host還會(huì)有區(qū)別
在第一步https://login.weixin.qq.com/cgi-bin/mmwebwx-bin/login接口祷膳,通過(guò)返回值確定host
String redirectUri= Utils.getMatchGroup0(regex,content[1])+"";
String tmpUrl=redirectUri.replaceAll("https://", "");
wxRootURL=tmpUrl.substring(0,tmpUrl.indexOf("/")).trim();
第六坑:上傳圖片
這個(gè)只能抓包模仿,代碼如下
MultipartBody.Builder builder = new MultipartBody.Builder().setType(MultipartBody.FORM);
builder.addFormDataPart("id","WU_FILE_1");
builder.addFormDataPart("name","image.png");
builder.addFormDataPart("type","image/png");
builder.addFormDataPart("lastModifiedDate",new Date().toLocaleString());
builder.addFormDataPart("mediatype","pic");
builder.addFormDataPart("uploadmediarequest",body);
RequestBody fileBody = RequestBody.create(MediaType.parse(PostRequest.getMimeType(fileName)),content);
builder.addFormDataPart("filename","image.png",fileBody);