微信web協(xié)議分析(微信網(wǎng)頁(yè)版 wx2.qq.com)
1.打開首頁(yè),分配一個(gè)隨機(jī)uuid,
2.根據(jù)該uuid獲取二維碼圖片。
3.微信客戶端掃描該圖片,在客戶端確認(rèn)登錄。
4.瀏覽器不停的調(diào)用一個(gè)接口,如果返回登錄成功,則調(diào)用登錄接口
5.此時(shí)可以獲取聯(lián)系人列表,可以發(fā)送消息。然后不斷調(diào)用同步接口。
6.如果同步接口有返回,則可以獲取新消息,然后繼續(xù)調(diào)用同步接口。
源碼地址:github.com/biezhi/wechat-robot
執(zhí)行流程
???????+--------------+?????+---------------+???+---------------+ ???????|??????????????|?????|???????????????|???|???????????????| ???????|???Get?UUID???|?????|??Get?Contact??|???|?Status?Notify?| ???????|??????????????|?????|???????????????|???|???????????????| ???????+-------+------+?????+-------^-------+???+-------^-------+ ???????????????|????????????????????|???????????????????| ???????????????|????????????????????+-------+??+--------+ ???????????????|????????????????????????????|??| ???????+-------v------+???????????????+-----+--+------+??????+--------------+ ???????|??????????????|???????????????|???????????????|??????|??????????????| ???????|??Get?QRCode??|???????????????|??Weixin?Init??+------>??Sync?Check??<----+ | | | | | | | +-------+------+ +-------^-------+ +-------+------+ | | | | | | | +-----------+ | | | +-------v------+ +-------+--------+ +-------v-------+ | | Confirm Login | | | | +------>????Login?????+--------------->?New?Login?Page?|?????|??Weixin?Sync??| |??????|??????????????|???????????????|????????????????|?????|???????????????| |??????+------+-------+???????????????+----------------+?????+---------------+ |?????????????| |QRCode?Scaned| +-------------+
WebWechat API
1. 獲取UUID(參考方法 getUUID)
API | 獲取 UUID |
---|---|
url | https://login.weixin.qq.com/jslogin |
method | GET |
data | URL Encode |
params |
appid?: wx782c26e4c19acffb? fun?: new? lang: zh_CN? _?: 時(shí)間戳 |
返回?cái)?shù)據(jù)(String):
window.QRLogin.code = 200; window.QRLogin.uuid = "xxx"
2. 顯示二維碼(參考方法 showQrCode)
API | 顯示二維碼 |
---|---|
url | login.weixin.qq.com/qrcode/{uuid} |
method | POST |
params | t : webwx _ : 時(shí)間戳 |
3. 等待登錄(參考方法 waitForLogin)這里是微信確認(rèn)登錄
API | 二維碼掃描登錄 |
---|---|
url | login.weixin.qq.com/cgi-bin/mmwebwx-bin/login |
method | GET |
params | tip : 1:未掃描 0:已掃描 uuid : 獲取到的uuid _ : 時(shí)間戳 |
返回?cái)?shù)據(jù)(String):
window.code=xxx; xxx: 408 登陸超時(shí) 201 掃描成功 200 確認(rèn)登錄 當(dāng)返回200時(shí),還會(huì)有 window.redirect_uri="https://wx.qq.com/cgi-bin/mmwebwx-bin/webwxnewloginpage?ticket=xxx&uuid=xxx&lang=xxx&scan=xxx";
4. 登錄獲取Cookie(參考方法 login)
API | webwxnewloginpage |
---|---|
url | wx2.qq.com/cgi-bin/mmwebwx-bin/webwxnewloginpage |
method | GET |
params | ticket : xxx uuid : xxx lang : zh_CN scan : xxx fun : new |
返回?cái)?shù)據(jù)(XML):
<error> <ret>0</ret> <message>OK</message> <skey>xxx</skey> <wxsid>xxx</wxsid> <wxuin>xxx</wxuin> <pass_ticket>xxx</pass_ticket> <isgrayscale>1</isgrayscale></error>
在這一步獲取xml中的 skey
, wxsid
, wxuin
, pass_ticket
5. 微信初始化(參考方法 wxInit)
API | webwxinit |
---|---|
url | wx2.qq.com/cgi-bin/mmwebwx-bin/webwxinit |
method | POST |
data | JSON |
header | Content-Type: application/json; charset=UTF-8 |
params | { BaseRequest: { Uin: xxx, Sid: xxx, Skey: xxx, DeviceID: xxx, } } |
返回?cái)?shù)據(jù)(JSON):
{ "BaseResponse": { "Ret": 0, "ErrMsg": "" }, "Count": 11, "ContactList": [...], "SyncKey": { "Count": 4, "List": [ { "Key": 1, "Val": 635705559 }, ... ] }, "User": { "Uin": xxx, "UserName": xxx, "NickName": xxx, "HeadImgUrl": xxx, "RemarkName": "", "PYInitial": "", "PYQuanPin": "", "RemarkPYInitial": "", "RemarkPYQuanPin": "", "HideInputBarFlag": 0, "StarFriend": 0, "Sex": 1, "Signature": "Apt-get install B", "AppAccountFlag": 0, "VerifyFlag": 0, "ContactFlag": 0, "WebWxPluginSwitch": 0, "HeadImgFlag": 1, "SnsFlag": 17 }, "ChatSet": xxx, "SKey": xxx, "ClientVersion": 369297683, "SystemTime": 1453124908, "GrayScale": 1, "InviteStartCount": 40, "MPSubscribeMsgCount": 2, "MPSubscribeMsgList": [...], "ClickReportInterval": 600000 }
這一步中獲取 SyncKey
, User
后面的消息監(jiān)聽用。
6. 開啟微信狀態(tài)通知(參考方法 wxStatusNotify)
API | webwxstatusnotify |
---|---|
url | wx2.qq.com/cgi-bin/mmwebwx-bin/webwxstatusnotify |
method | POST |
data | JSON |
header | Content-Type: application/json; charset=UTF-8 |
params | { BaseRequest: { Uin: xxx, Sid: xxx, Skey: xxx, DeviceID: xxx }, Code: 3, FromUserName: 自己的ID, ToUserName: 自己的ID, ClientMsgId: 時(shí)間戳 } |
返回?cái)?shù)據(jù)(JSON):
{ "BaseResponse": { "Ret": 0, "ErrMsg": "" }, ... }
7. 獲取聯(lián)系人列表(參考方法 getContact)
API | webwxgetcontact |
---|---|
url | wx2.qq.com/cgi-bin/mmwebwx-bin/webwxgetcontact |
method | POST |
data | JSON |
header | ContentType: application/json; charset=UTF-8 |
params | { BaseRequest: { Uin: xxx, Sid: xxx, Skey: xxx, DeviceID: xxx, } } |
返回?cái)?shù)據(jù)(JSON):
{ "BaseResponse": { "Ret": 0, "ErrMsg": "" }, "MemberCount": 334, "MemberList": [ { "Uin": 0, "UserName": xxx, "NickName": "Urinx", "HeadImgUrl": xxx, "ContactFlag": 3, "MemberCount": 0, "MemberList": [], "RemarkName": "", "HideInputBarFlag": 0, "Sex": 0, "Signature": "我是二蛋", "VerifyFlag": 8, "OwnerUin": 0, "PYInitial": "URINX", "PYQuanPin": "Urinx", "RemarkPYInitial": "", "RemarkPYQuanPin": "", "StarFriend": 0, "AppAccountFlag": 0, "Statues": 0, "AttrStatus": 0, "Province": "", "City": "", "Alias": "Urinxs", "SnsFlag": 0, "UniFriend": 0, "DisplayName": "", "ChatRoomId": 0, "KeyWord": "gh_", "EncryChatRoomId": "" }, ... ], "Seq": 0 }
8.消息檢查(參考方法 syncCheck)
API | synccheck |
---|---|
url | webpush2.weixin.qq.com/cgi-bin/mmwebwx-bin/synccheck |
method | GET |
data | JSON |
header | ContentType: application/json; charset=UTF-8 |
params | { BaseRequest: { Uin: xxx, Sid: xxx, Skey: xxx, DeviceID: xxx, } } |
返回?cái)?shù)據(jù)(String):
window.synccheck={retcode:"xxx",selector:"xxx"} retcode: 0 正常 1100 失敗/登出微信 selector: 0 正常 2 新的消息 7 進(jìn)入/離開聊天界面
9. 獲取最新消息(參考方法 webwxsync)
API | webwxsync |
---|---|
url | wx2.qq.com/cgi-bin/mmwebwx-bin/webwxsync?sid=xxx&skey=xxx&pass_ticket=xxx |
method | POST |
data | JSON |
header | ContentType: application/json; charset=UTF-8 |
params | { BaseRequest: { Uin: xxx, Sid: xxx, Skey: xxx, DeviceID: xxx }, SyncKey: xxx, rr: 時(shí)間戳取反 } |
返回?cái)?shù)據(jù)(JSON):
{ 'BaseResponse': {'ErrMsg': '', 'Ret': 0}, 'SyncKey': { 'Count': 7, 'List': [ {'Val': 636214192, 'Key': 1}, ... ] }, 'ContinueFlag': 0, 'AddMsgCount': 1, 'AddMsgList': [ { 'FromUserName': '', 'PlayLength': 0, 'RecommendInfo': {...}, 'Content': "", 'StatusNotifyUserName': '', 'StatusNotifyCode': 5, 'Status': 3, 'VoiceLength': 0, 'ToUserName': '', 'ForwardFlag': 0, 'AppMsgType': 0, 'AppInfo': {'Type': 0, 'AppID': ''}, 'Url': '', 'ImgStatus': 1, 'MsgType': 51, 'ImgHeight': 0, 'MediaId': '', 'FileName': '', 'FileSize': '', ... }, ... ], 'ModChatRoomMemberCount': 0, 'ModContactList': [], 'DelContactList': [], 'ModChatRoomMemberList': [], 'DelContactCount': 0, ... }
10. 發(fā)送消息(參考方法 webwxsendmsg)
API | webwxsendmsg |
---|---|
url | wx2.qq.com/cgi-bin/mmwebwx-bin/webwxsendmsg?pass_ticket=xxx |
method | POST |
data | JSON |
header | ContentType: application/json; charset=UTF-8 |
params | { BaseRequest: { Uin: xxx, Sid: xxx, Skey: xxx, DeviceID: xxx }, Msg: { Type: 1 文字消息, Content: 要發(fā)送的消息, FromUserName: 自己的ID, ToUserName: 好友的ID, LocalID: 與clientMsgId相同, ClientMsgId: 時(shí)間戳左移4位隨后補(bǔ)上4位隨機(jī)數(shù) } } |
返回?cái)?shù)據(jù)(JSON):
{ "BaseResponse": { "Ret": 0, "ErrMsg": "" }, ... }
更多資料:
github.com/xiangzhai/qwx
github.com/Urinx/WeixinBot
www.07net01.com/2016/01/1201188.html
www.cnblogs.com/xiaozhi_5638/p/4923811.html
【相關(guān)推薦】
Atas ialah kandungan terperinci 微信協(xié)議詳解. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Alat AI Hot

Undress AI Tool
Gambar buka pakaian secara percuma

Undresser.AI Undress
Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover
Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Clothoff.io
Penyingkiran pakaian AI

Video Face Swap
Tukar muka dalam mana-mana video dengan mudah menggunakan alat tukar muka AI percuma kami!

Artikel Panas

Alat panas

Notepad++7.3.1
Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina
Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1
Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6
Alat pembangunan web visual

SublimeText3 versi Mac
Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Portal log masuk untuk versi web Douyin adalah https://www.douyin.com/. Langkah -langkah log masuk termasuk: 1. Buka penyemak imbas; 2. Masukkan URL https://www.douyin.com/; 3. Klik butang "Masuk" dan pilih kaedah log masuk; 4. Masukkan kata laluan akaun; 5. Log masuk lengkap. Versi Web menyediakan fungsi seperti melayari, mencari, interaksi, memuat naik video dan pengurusan laman web peribadi, dan mempunyai kelebihan seperti pengalaman skrin besar, pelbagai tugas, pengurusan akaun mudah dan statistik data.

Komik menyalin tidak diragukan lagi sebagai harta yang tidak dapat dilepaskan. Di sini anda boleh menemui komik bola keranjang dalam pelbagai gaya, dari cerita kompetitif yang bersemangat dan inspirasi untuk komedi harian yang santai dan lucu. Sama ada anda ingin menghidupkan semula klasik atau menemui karya baru, menyalin komik dapat memenuhi keperluan anda. Melalui portal bacaan dalam talian yang disediakan oleh Copy Comics, anda akan mengucapkan selamat tinggal kepada masalah sumber cetak rompak, menikmati pengalaman membaca yang tinggi dan lancar, dan dapat menyokong pengarang komik kegemaran anda dan menyumbang kepada pembangunan komik yang sahih.

Memilih penyemak imbas UC atau penyemak imbas QQ bergantung kepada keperluan anda: 1. Pelayar UC sesuai untuk pengguna yang mengejar fungsi hiburan yang cepat dan kaya; 2. Pelayar QQ sesuai untuk pengguna yang memerlukan kestabilan dan sambungan lancar dengan produk Tencent.

Menggabungkan trend industri terkini dan data penilaian pelbagai dimensi pada tahun 2025, yang berikut adalah cadangan perisian penulisan AI yang komprehensif, yang meliputi senario arus perdana seperti penciptaan umum, penyelidikan akademik, dan pemasaran komersial, sambil mengambil kira perkhidmatan pengoptimuman dan penyetempatan Cina:

Komik yang bagus, platform pengalaman membaca yang mendalam yang didedikasikan untuk mencipta pencinta komik, menyatukan sejumlah besar sumber komik berkualiti tinggi di rumah dan di luar negara. Ia bukan sahaja platform membaca komik, tetapi juga komuniti yang menghubungkan artis komik dan pembaca dan berkongsi budaya komik. Melalui reka bentuk antara muka yang mudah dan intuitif dan fungsi carian yang kuat, NES Comics membolehkan anda dengan mudah mencari karya kegemaran anda dan menikmati pengalaman membaca yang lancar dan selesa. Katakan selamat tinggal kepada operasi yang lama menunggu dan membosankan, masukkan dunia komik yang bagus dengan serta -merta dan mulakan perjalanan komik anda!

Komik Frogman telah menjadi pilihan pertama bagi banyak pencinta komik dengan sumber komik yang kaya dan pelbagai dan pengalaman membaca dalam talian yang mudah dan lancar. Ia seperti kolam yang bersemangat, dengan cerita -cerita segar dan menarik yang sentiasa muncul, menunggu anda menemui dan meneroka. Frog Man Comics meliputi pelbagai subjek, dari pengembaraan yang ghairah hingga cinta manis, dari fantasi dan fiksyen sains untuk penangguhan yang menggembirakan, tidak kira genre yang anda suka, anda dapat mencari karya kegemaran anda di sini. Reka bentuk antara muka yang mudah dan intuitif membolehkan anda dengan mudah memulakan, dengan cepat mencari komik yang anda ingin baca, dan tenggelamkan diri anda dalam dunia komik yang menarik.

Di sini, anda boleh menikmati lautan komik yang luas dan meneroka karya-karya pelbagai tema dan gaya, dari komik lelaki muda yang ghairah hingga komik gadis yang halus dan bergerak, dari komik misteri yang membosankan dan membakar otak untuk komik harian yang santai dan lucu, ada segala-galanya, dan selalu ada yang dapat menyentuh hati anda. Kami bukan sahaja mempunyai sejumlah besar sumber komik yang tulen, tetapi juga sentiasa memperkenalkan dan mengemas kini kerja -kerja terkini untuk memastikan bahawa anda dapat membaca komik kegemaran anda secepat mungkin.

Laman web rasmi terbaru 2025b anhui adalah: https://www.marketwebb.co/zh-cn/join?ref=507720986& ;type=wenzi; Binance Exchange adalah pertukaran cryptocurrency global yang melayani 180 negara dan wilayah termasuk Amerika Utara, Eropah, Taiwan, Timur Tengah, Hong Kong, dan Malaysia. Ia menyediakan lebih daripada 600 kriptografi dan mempunyai 270 juta pengguna berdaftar di seluruh dunia.
