Web微信協議

java版程序源代碼路徑:

https://github.com/biezhi/wechat-api

Web微信協議

[文檔]Web微信協議

1.登錄

1.1 獲取uuid(get)

請求

https://login.wx.qq.com/jslogin?appid=wx782c26e4c19acffb&redirect_uri=https%3A%2F%2Fwx.qq.com%2Fcgi-bin%2Fmmwebwx-bin%2Fwebwxnewloginpage&fun=new&lang=zh_CN&_=1476606163580

  1. appid: wx782c26e4c19acffb(固定值)
  2. redirect_rui: https://wx.qq.com/cgi-bin/mmwebwx-bin/webwxnewloginpage(url編碼)
  3. fun:new(固定值)
  4. lang: zh_CN(固定值)
  5. _: unix時間戳

響應

window.QRLogin.code = 200; window.QRLogin.uuid = "gf5Gk61zEA=="; 
window.QRLogin.uuid的值就是我們需要的uuid

1.2 獲取二維碼(get)

請求

https://login.weixin.qq.com/qrcode/gf5Gk61zEA== 
固定格式: https://login.weixin.qq.com/qrcode/{uuid}

二維碼

https://login.weixin.qq.com/l/gf5Gk61zEA== 
固定格式: https://login.weixin.qq.com/l/{uuid}

1.3 等待登錄掃描(get輪詢)

請求

https://login.wx.qq.com/cgi-bin/mmwebwx-bin/login?loginicon=true&uuid=gf5Gk61zEA==&tip=0&r=862560455&_=1476606163582

  1. loginicon:true
  2. uuid: uuid
  3. tip:0
  4. r:862560455(非必須)
  5. _: unix時間戳

響應

  1. window.code=408;// 登錄超時(408)
  2. window.code=201;window.userAvatar='data:img/jpg;base64';// 掃描成功(201), userAvatar爲用戶頭像
  3. window.code=200;// 確認登錄(200), redirect_uri獲取cookie
  4. window.redirect_uri="https://wx.qq.com/cgi-bin/mmwebwx-bin/webwxnewloginpage?ticket=AYfheMIH6tt9EmcZ0DxCKF4a@qrticket_0&uuid=YeGrrvqmHQ==&lang=zh_CN&scan=1476606728";

1.4 登錄後獲取cookie(get)

請求

https://wx.qq.com/cgi-bin/mmwebwx-bin/webwxnewloginpage?ticket=AYfheMIH6tt9EmcZ0DxCKF4a@qrticket_0&uuid=YeGrrvqmHQ==&lang=zh_CN&scan=1476606728&fun=new&version=v2&lang=zh_CN
上一步的redirect_uri

響應

  1. <error>
  2. <ret>0</ret>
  3. <message></message>
  4. <skey>@crypt_14ae1b12_b73ba2673448154847d7007a2de3c53b</skey>
  5. <wxsid>jSsRlGGPyY7U8det</wxsid>
  6. <wxuin>566148615</wxuin>
  7. <pass_ticket>kUY4PSgKNy4eOlWI%2FwIBMVULe3KHPVyvDqw1%2B4DVVu9McVvE2d5fL7LFOfa4iYnk</pass_ticket>
  8. <isgrayscale>1</isgrayscale>
  9. </error>

skeywxsidwxuinpass_ticket和返回的cookie都需要保存(後面要用)


2.獲取信息

2.1 初始化(post)

獲取聯繫人信息, 公衆號信息, 自己的賬號信息

請求

https://wx.qq.com/cgi-bin/mmwebwx-bin/webwxinit?r=862039733&lang=zh_CN&pass_ticket=kUY4PSgKNy4eOlWI%252FwIBMVULe3KHPVyvDqw1%252B4DVVu9McVvE2d5fL7LFOfa4iYnk

  • header 
    Content-Type:application/json;charset=UTF-8

  • content

  1. {
  2. "BaseRequest":{
  3. "Uin":"566148615",
  4. "Sid":"jSsRlGGPyY7U8det",
  5. "Skey":"@crypt_14ae1b12_b73ba2673448154847d7007a2de3c53b",
  6. "DeviceID":"e119795675188164"
  7. }
  8. }
  1. Uin,Sid,Skey:登錄後獲取的xml中的數據
  2. DeviceID: e +隨機數

響應

  1. {
  2. "BaseResponse":{
  3. "Ret":0,
  4. "ErrMsg":""
  5. },
  6. "Count":11,
  7. "ContactList":[...],//聯繫人信息, 公衆號信息, 羣
  8. "SyncKey":{
  9. "Count":4,
  10. "List":[
  11. {
  12. "Key":1,
  13. "Val":635705559
  14. },
  15. ...//同步key值, 下次請求時要寫到上
  16. ]
  17. },
  18. "User":{
  19. "Uin": xxx,
  20. "UserName": xxx,
  21. "NickName": xxx,
  22. "HeadImgUrl": xxx,
  23. "RemarkName":"",
  24. "PYInitial":"",
  25. "PYQuanPin":"",
  26. "RemarkPYInitial":"",
  27. "RemarkPYQuanPin":"",
  28. "HideInputBarFlag":0,
  29. "StarFriend":0,
  30. "Sex":1,
  31. "Signature":"Apt-get install B",
  32. "AppAccountFlag":0,
  33. "VerifyFlag":0,
  34. "ContactFlag":0,
  35. "WebWxPluginSwitch":0,
  36. "HeadImgFlag":1,
  37. "SnsFlag":17
  38. },
  39. "ChatSet":"xxx",
  40. "SKey":"@crypt_14ae1b12_b73ba2673448154847d7007a2de3c53b",
  41. "ClientVersion":369302288,
  42. "SystemTime":1476608977,
  43. "GrayScale":1,
  44. "InviteStartCount":40,
  45. "MPSubscribeMsgCount":7,
  46. "ClickReportInterval":600000
  47. }

2.2 標記已讀(post)

客戶端讀取消息後要發起請求, 告訴服務器消息已經讀取, 從而通知手機客戶端

請求

https://wx.qq.com/cgi-bin/mmwebwx-bin/webwxstatusnotify?pass_ticket=ZDJfLCa0EAKrLn2CdD7MDl%252B54GwlW0IEiwYOsm6II%252F8W57y0pF1F8fqS%252B5z4INU5

  1. pass_ticket 登錄請求返回的xml中的值
  • header 
    Content-Type:application/json;charset=UTF-8

  • content

  1. {
  2. "BaseRequest":{
  3. "Uin":566148615,
  4. "Sid":"EKjoZCMRIvrY7NIP",
  5. "Skey":"@crypt_14ae1b12_f59314a579c67b15f838d09feb79c17f",
  6. "DeviceID":"e098855372553243"
  7. },
  8. "Code":3,
  9. "FromUserName":自己ID,
  10. "ToUserName":自己ID,
  11. "ClientMsgId":時間戳
  12. }

響應

  1. {
  2. "BaseResponse":{
  3. "Ret":0,
  4. "ErrMsg":""
  5. },
  6. "MsgID":"1525762281689643050"
  7. }

2.3 獲取聯繫人信息列表(get)

請求

https://wx.qq.com/cgi-bin/mmwebwx-bin/webwxgetcontact?pass_ticket=ZDJfLCa0EAKrLn2CdD7MDl%252B54GwlW0IEiwYOsm6II%252F8W57y0pF1F8fqS%252B5z4INU5&r=1476608979549&seq=0&skey=@crypt_14ae1b12_f59314a579c67b15f838d09feb79c17f

  1. pass_ticket 登錄請求中返回xml中獲取
  2. seq 0(固定值)
  3. skey 初始化請求中獲取

響應

  1. {
  2. "BaseResponse":{
  3. "Ret":0,
  4. "ErrMsg":""
  5. },
  6. "MemberCount":637,
  7. "MemberList":[
  8. {
  9. "Uin":0,
  10. "UserName": xxx,
  11. "NickName":"LbbNiu",
  12. "HeadImgUrl": xxx,
  13. "ContactFlag":3,
  14. "MemberCount":0,
  15. "MemberList":[],
  16. "RemarkName":"",
  17. "HideInputBarFlag":0,
  18. "Sex":0,
  19. "Signature":"IT全才-LbbNiu",
  20. "VerifyFlag":8,
  21. "OwnerUin":0,
  22. "PYInitial":"LbbNiu",
  23. "PYQuanPin":"LbbNiu",
  24. "RemarkPYInitial":"",
  25. "RemarkPYQuanPin":"",
  26. "StarFriend":0,
  27. "AppAccountFlag":0,
  28. "Statues":0,
  29. "AttrStatus":0,
  30. "Province":"",
  31. "City":"",
  32. "Alias":"Urinxs",
  33. "SnsFlag":0,
  34. "UniFriend":0,
  35. "DisplayName":"",
  36. "ChatRoomId":0,
  37. "KeyWord":"gh_",
  38. "EncryChatRoomId":""
  39. }
  40. ....//聯繫人列表
  41. ],
  42. "Seq":0
  43. }

2.4 獲取聊天會話列表(post)

請求

https://wx.qq.com/cgi-bin/mmwebwx-bin/webwxbatchgetcontact?type=ex&r=1476608979648&pass_ticket=ZDJfLCa0EAKrLn2CdD7MDl%252B54GwlW0IEiwYOsm6II%252F8W57y0pF1F8fqS%252B5z4INU5

  1. type ex(固定值)
  2. r 當前時間戳
  3. pass_ticket 登錄請求中返回xml中獲取
  • header 
    Content-Type:application/json;charset=UTF-8

  • content

  1. {
  2. "BaseRequest":{
  3. "Uin":566148615,
  4. "Sid":"EKjoZCMRIvrY7NIP",
  5. "Skey":"@crypt_14ae1b12_f59314a579c67b15f838d09feb79c17f",
  6. "DeviceID":"e316575061818116"
  7. },
  8. "Count":7,
  9. "List":[
  10. {
  11. "UserName":"@@e2da072e5beda58413f788fd2978b6f9fbde2ba337a71f02e1458958fcdb8371",//去要獲取的羣UserName
  12. "ChatRoomId":""
  13. }…
  14. ]
  15. }

響應

  1. {
  2. "BaseResponse":{
  3. "Ret":0,
  4. "ErrMsg":""
  5. },
  6. "Count":7,
  7. "ContactList":[
  8. ]
  9. }

2.5 同步刷新(get輪詢)

請求

https://webpush.wx.qq.com/cgi-bin/mmwebwx-bin/synccheck?r=1476611147442&skey=%40crypt_14ae1b12_f59314a579c67b15f838d09feb79c17f&sid=EKjoZCMRIvrY7NIP&uin=566148615&deviceid=e673682280871456&synckey=1_643606091%7C2_643606203%7C3_643606171%7C11_643605834%7C13_643590001%7C201_1476611120%7C1000_1476610779%7C1001_1476590971%7C1004_1475896795&_=1476611120940

r 時間戳

skey 初始化信息中獲取

sid 登錄請求中返回xml中獲取

uin 登錄請求中返回xml中獲取

synckey 初始化信息中獲取

deviceid 設備id

_ 時間戳

響應

window.synccheck={retcode:"0",selector:"2"}

retcode:

0正常

1100失敗/登出微信

selector:

0正常

2新的消息

4通過時發現,刪除好友

6刪除時發現和對方通過好友驗證

7進入/離開聊天界面(可能沒有了)

2.6 獲取消息(post, cookie)

請求

https://wx.qq.com/cgi-bin/mmwebwx-bin/webwxsync?sid=2qui+CC4YTiiI2zk&skey=@crypt_14ae1b12_1bb5e370393b8cd502919825fe9dbfc0&lang=zh_CN&pass_ticket=tM909DkHH8fXLR7hhwIgn9MqmSuCxx6%252BcdaA9qE203zxP7fMT%252FtxPlY7opbnnVE2

pass_ticket 登錄請求中返回xml中獲取

r 時間戳

skey 初始化信息中獲取

sid 登錄請求中返回xml中獲取

lang zh_CN

  • header 
    Content-Type:application/json;charset=UTF-8

  • content

{

"BaseRequest":{

"Uin":566148615,

"Sid":"2qui+CC4YTiiI2zk",

"Skey":"@crypt_14ae1b12_1bb5e370393b8cd502919825fe9dbfc0",

"DeviceID":"e151332185497293"

},

"SyncKey":{

"Count":9,

"List":[

{"Key":1,"Val":643606091},

{"Key":2,"Val":643606236},

{"Key":3,"Val":643606171},

{"Key":11,"Val":643606232},

{"Key":13,"Val":643590001},

{"Key":203,"Val":1476612126},

{"Key":1000,"Val":1476610779},

{"Key":1001,"Val":1476590971},

{"Key":1004,"Val":1475896795}

]

},

"rr":856481324

}

響應

{

"BaseResponse":{

"Ret":0,

"ErrMsg":""

},

"AddMsgCount":1,

"AddMsgList":[

{

"MsgId":"8410419333108271670",

"FromUserName":"@595d9f44c64e2f480baa0d6430ca58ef053a768daa6d7b3fcc4bece244bcbce3",

"ToUserName":"@e5403f77c2193da671790c1a242d0b43ac6f570e5047993ef745d13d6376b57b",

"MsgType":51,

"Content":"&lt;msg&gt;<br/>&lt;op id='5'&gt;<br/>&lt;username&gt;wxid_e602if1itlm821&lt;/username&gt;<br/>&lt;/op&gt;<br/>&lt;/msg&gt;",

"Status":3,

"ImgStatus":1,

"CreateTime":1476612570,

"VoiceLength":0,

"PlayLength":0,

"FileName":"",

"FileSize":"",

"MediaId":"",

"Url":"",

"AppMsgType":0,

"StatusNotifyCode":5,

"StatusNotifyUserName":"@e5403f77c2193da671790c1a242d0b43ac6f570e5047993ef745d13d6376b57b",

"RecommendInfo":{

"UserName":"",

"NickName":"",

"QQNum":0,

"Province":"",

"City":"",

"Content":"",

"Signature":"",

"Alias":"",

"Scene":0,

"VerifyFlag":0,

"AttrStatus":0,

"Sex":0,

"Ticket":"",

"OpCode":0

},

"ForwardFlag":0,

"AppInfo":{

"AppID":"",

"Type":0

},

"HasProductId":0,

"Ticket":"",

"ImgHeight":0,

"ImgWidth":0,

"SubMsgType":0,

"NewMsgId":8410419333108272000

}

],

"ModContactCount":0,

"ModContactList":[],

"DelContactCount":0,

"DelContactList":[],

"ModChatRoomMemberCount":0,

"ModChatRoomMemberList":[],

"Profile":{

"BitFlag":0,

"UserName":{

"Buff":""

},

"NickName":{

"Buff":""

},

"BindUin":0,

"BindEmail":{

"Buff":""

},

"BindMobile":{

"Buff":""

},

"Status":0,

"Sex":0,

"PersonalCard":0,

"Alias":"",

"HeadImgUpdateFlag":0,

"HeadImgUrl":"",

"Signature":""

},

"ContinueFlag":0,

"SyncKey":{

"Count":10,

"List":[

{

"Key":1,

"Val":643606091

}

.....//同步key

]

},

"SKey":"",

"SyncCheckKey":{

"Count":10,

"List":[

{

"Key":1,

"Val":643606091

}

.....//同步檢測消息key

]

}

}

2.7 狀態報告(post)

僅用於統計

請求

https://wx.qq.com/cgi-bin/mmwebwx-bin/webwxstatreport?fun=new&lang=zh_CN

  • header 
    Content-Type:application/json;charset=UTF-8
  • content

3.消息

3.1 文字消息(post)

請求

https://wx.qq.com/cgi-bin/mmwebwx-bin/webwxsendmsg?lang=zh_CN&pass_ticket=tM909DkHH8fXLR7hhwIgn9MqmSuCxx6%252BcdaA9qE203zxP7fMT%252FtxPlY7opbnnVE2

lang zh_CN

pass_ticket 登錄後返回信息中獲取

  • header 
    Content-Type:application/json;charset=UTF-8

  • content

{

"BaseRequest":{

"Uin":566148615,

"Sid":"2qui+CC4YTiiI2zk",

"Skey":"@crypt_14ae1b12_1bb5e370393b8cd502919825fe9dbfc0",

"DeviceID":"e784205590563506"

},

"Msg":{

"Type":1,

"Content":"@啊啊啊 啊啊啊啊啊啊",

"FromUserName":"@595d9f44c64e2f480baa0d6430ca58ef053a768daa6d7b3fcc4bece244bcbce3",

"ToUserName":"@@9e1c0ab62b5ab222835786c00192fb1e10c75f8082c245d360ac6a6bd2efe2df",

"LocalID":"14766146756340722",

"ClientMsgId":"14766146756340722"

},

"Scene":0

}

Type:1(文字消息),

Content:要發送的消息,

FromUserName:自己ID,

ToUserName:好友ID,

LocalID:與clientMsgId相同,

ClientMsgId:時間戳左移4位隨後補上4位隨機數

響應

{

"BaseResponse":{

"Ret":0,

"ErrMsg":""

},

"MsgID":"4527210051674039705",

"LocalID":"14766146756340722"

}

3.2 表情消息(post)

請求

https://wx.qq.com/cgi-bin/mmwebwx-bin/webwxsendemoticon?fun=sys&lang=zh_CN

  • header 
    Content-Type:application/json;charset=UTF-8

  • content

{

"BaseRequest":{

"Uin":566148615,

"Sid":"2qui+CC4YTiiI2zk",

"Skey":"@crypt_14ae1b12_1bb5e370393b8cd502919825fe9dbfc0",

"DeviceID":"e961665475339031"

},

"Msg":{

"Type":47,

"EmojiFlag":2,

"EMoticonMd5":"44682e637b75a3f5d6747d61dbd23a15",

"FromUserName":"@595d9f44c64e2f480baa0d6430ca58ef053a768daa6d7b3fcc4bece244bcbce3",

"ToUserName":"@e5403f77c2193da671790c1a242d0b43ac6f570e5047993ef745d13d6376b57b",

"LocalID":"14766150190560991",

"ClientMsgId":"14766150190560991"

},

"Scene":0

}

 

Type:47 emoji消息,

EmojiFlag:2,

MediaId:表情上傳後的媒體ID,

FromUserName:自己ID,

ToUserName:好友ID,

LocalID:與clientMsgId相同,

ClientMsgId:時間戳左移4位隨後補上4位隨機數

響應

{

"BaseResponse":{

"Ret":0,

"ErrMsg":""

},

"MsgID":"1604548346807369725",

"LocalID":"14766150190560991"

}

3.3 圖片消息

請求

https://wx.qq.com/cgi-bin/mmwebwx-bin/webwxsendmsgimg?fun=async&f=json&lang=zh_CN

  • header 
    Content-Type:application/json;charset=UTF-8

  • content

{

"BaseRequest":{

"Uin":566148615,

"Sid":"2qui+CC4YTiiI2zk",

"Skey":"@crypt_14ae1b12_1bb5e370393b8cd502919825fe9dbfc0",

"DeviceID":"e374531581999650"

},

"Msg":{

"Type":3,

"MediaId":"@crypt_4d268bd0",

"FromUserName":"@595d9f44c64e2f480baa0d6430ca58ef053a768daa6d7b3fcc4bece244bcbce3",

"ToUserName":"@e5403f77c2193da671790c1a242d0b43ac6f570e5047993ef745d13d6376b57b",

"LocalID":"14766158484990338",

"ClientMsgId":"14766158484990338"

},

"Scene":0

}

 

Type:3媒體消息,

MediaId:表情上傳後的媒體ID,

FromUserName:自己ID,

ToUserName:好友ID,

LocalID:與clientMsgId相同,

ClientMsgId:時間戳左移4位隨後補上4位隨機數

響應

 

{

"BaseResponse":{

"Ret":0,

"ErrMsg":""

},

"MsgID":"6722400141243782346",

"LocalID":"14766158484990338"

}

3.4 文件消息(post)

請求

https://wx.qq.com/cgi-bin/mmwebwx-bin/webwxsendappmsg?fun=async&f=json

  • header 
    Content-Type:application/json;charset=UTF-8

  • content

{

"BaseRequest":{

"Uin":566148615,

"Sid":"NO0RlTCXvpBGaag7",

"Skey":"@crypt_14ae1b12_3bdec7023595f68f9900b5d9d7d30b75",

"DeviceID":"e984332143788024"

},

"Msg":{

"Type":6,

"Content":"<appmsg appid='wxeb7ec651dd0aefa9' sdkver=''><title>top10.csv</title><des></des><action></action><type>6</type><content></content><url></url><lowurl></lowurl><appattach><totallen>1760</totallen><attachid>@crypt_f672a24d_9d9c7d6a3b5ec058db1e6eb3d7c66917ede2e615535e9659365322de110ac41877d9a3b878ed82c0959f9b4602ef6e6d784ae853ab4e242d201cb19b9ee255a337f884eab998c5c43e7d433c01f14c91</attachid><fileext>csv</fileext></appattach><extinfo></extinfo></appmsg>",

"FromUserName":"@257b5aa7fb7b1672afb889be97197478cf618d9bab2b470cf767a61ae9f7f321",

"ToUserName":"@@ab3e18c922f8ab162762f6da231236137ca52871419ec9cafc2421607e82e1ca",

"LocalID":"14767614604200494",

"ClientMsgId":"14767614604200494"

},

"Scene":0

}

響應

 

{

"BaseResponse":{

"Ret":0,

"ErrMsg":""

},

"MsgID":"6923581840474342573",

"LocalID":"14767614604200494"

}

3.5 上傳附件(post)

請求

https://file.wx.qq.com/cgi-bin/mmwebwx-bin/webwxuploadmedia?f=json

  • header 
    Content-Type:multipart/form-data; boundary=----WebKitFormBoundaryoWmrkW7MIGyBhlOt

  • content

id 文件id

name 文件名

type 文件類型

lastModifieDate 最後修改時間

size 文件大小

mediatype 文件媒體類型 doc pic

uploadmediarequest(json字符串)

UploadType上傳類型2

BaseRequest

Uin登錄中獲得

Sid登錄中獲得

Skey登錄中獲得

DeviceID設備id

ClientMediaId文件本地消息id

TotalLen文件總大小

StartPos開始位置

DataLen數據長度

MediaType媒體類型4

FromUserName發送用戶id

ToUserName接受用戶id

FileMd5文件md5

webwx_data_ticket cookie中信息

pass_ticket

filename 文件流

響應

 

{

"BaseResponse":{

"Ret":0,

"ErrMsg":""

}

,

"MediaId":"@crypt_6084141c_c73c046b750fd6e3e82d0aba4839b89b30851de7eace0446a4f73b524e3b43d41b24048e9c10cf7ba3387d04d63e6bd75bf8e3237acdddda5d4e3ede176617370573ebb2f820595076c55906a50a50a7",

"StartPos":25929,

"CDNThumbImgHeight":0,

"CDNThumbImgWidth":0

}

3.6 圖片消息

3.6.1 消息圖片(get)

請求

https://wx.qq.com/cgi-bin/mmwebwx-bin/webwxgetmsgimg?&MsgID=6829659093985341608&skey=%40crypt_14ae1b12_1bb5e370393b8cd502919825fe9dbfc0&type=slave

MsgID:消息ID

type: slave 略縮圖or爲空時加載原圖

skey: xxx

3.6.2 聯繫人頭像(get)

請求

https://wx.qq.com/cgi-bin/mmwebwx-bin/webwxgeticon?seq=637275253&username=@aa357b7fc1ccb2e77a2632a6251fb6de2c5dd1c0ec503f04b25cfd34c256956a&skey=@crypt_14ae1b12_1bb5e370393b8cd502919825fe9dbfc0

seq:數字,可爲空

username: ID

skey: xxx

3.6.3 羣頭像(get)

請求

https://wx.qq.com/cgi-bin/mmwebwx-bin/webwxgetheadimg?seq=0&username=@@eca74ece82ad7947d262c59d53ab5d001e8776374141377cc025956b44bd1c03&skey=@crypt_14ae1b12_1bb5e370393b8cd502919825fe9dbfc0

seq:數字,可爲空

username:羣ID

skey: xxx

3.7 多媒體接口

3.7.1 語音消息(get)

請求

https://wx.qq.com/cgi-bin/mmwebwx-bin/webwxgetvoice?msgid=6181125285738858128&skey=@crypt_14ae1b12_1bb5e370393b8cd502919825fe9dbfc0

msgid:消息ID

skey: xxx

3.7.2 視頻消息(get)

請求

https://wx.qq.com/cgi-bin/mmwebwx-bin/webwxgetvideo?msgid=114757855447263581&skey=%40crypt_14ae1b12_1bb5e370393b8cd502919825fe9dbfc0

msgid:消息ID

skey: xxx

3.7.3 其他文件(get)

請求

https://file.wx.qq.com/cgi-bin/mmwebwx-bin/webwxgetmedia?sender=@@aa4d90eee1984452cfacf8b510ce6547af58aa4fe34fe567787c716fd262d42c&mediaid=@crypt_3d1bb9c7_7f07116cc9b86e9d8237ad938293eee8a820acfa35e7bdaa41a03fc2fb17b60a4c6da7f967714259dec587505a1b55b10e61e301f733ec718167d8d355f8809257d3fbf382d775e2872e552957e894d52060d8766133214a58ea017e6416216c9f6f1d6056e5b22fe6c78a50efcf384969a7e1b96f348f581853b41be070c16ea4d510b8d10d747a3fc5a3909e1ed2deea43aa6db558c6dd58d453e8d6235d9f6a7c7bc0eb752fb5aee59568ab8de8ff38e0064b827765ae847d6a3503fba9a970006d18f0092a12811ccaec57c071bd&filename=51CTO%E4%B8%8B%E8%BD%BD-MySQL%E6%80%A7%E8%83%BD%E8%B0%83%E4%BC%98%E4%B8%8E%E6%9E%B6%E6%9E%84%E8%AE%BE%E8%AE%A1.pdf&fromuser=1443149207&pass_ticket=td%252BZEx1ANBEB8wz%252BxjYhotl3fChIto%252FyC4w%252FNHMopoqOP8Eya9%252FivEs2lsPEDqEj&webwx_data_ticket=gSc8PoV98Y4y98pOsP6hmcpj

sender 發送者UserName

mediaid 媒體id

filename 文件名

fromuser 接受者UserName

pass_ticket 登錄返回信息中

webwx_data_ticket cookie中信息

3.8 賬號類型

  • 個人賬號 以@開頭, 例如: @xxx
  • 羣聊 以@@開頭, 例如: @@xxx
  • 公衆號/服務號 以@開頭, 但其VerifyFlag & 8 != 0

VerifyFlag:

一般公衆號/服務號:8

微信自家的服務號:24

微信官方賬號微信團隊:56

  • 特殊賬號 有特殊的ID(文件傳輸助手之類)

filehelper, newsapp, fmessage, weibo, qqmail, fmessage, tmessage, qmessage, qqsync, floatbottle, lbsapp, shakeapp, medianote, qqfriend, readerapp, blogapp, facebookapp, masssendapp, meishiapp, feedsapp, voip, blogappweixin, weixin, brandsessionholder, weixinreminder, officialaccounts, notification_messages, wxitil, userexperience_alarm, notification_messages

3.9 消息類型

3.9.1 一般格式

{

"FromUserName":"",

"ToUserName":"",

"Content":"",

"StatusNotifyUserName":"",

"ImgWidth":0,

"PlayLength":0,

"RecommendInfo":{...},

"StatusNotifyCode":4,

"NewMsgId":"",

"Status":3,

"VoiceLength":0,

"ForwardFlag":0,

"AppMsgType":0,

"Ticket":"",

"AppInfo":{...},

"Url":"",

"ImgStatus":1,

"MsgType":1,

"ImgHeight":0,

"MediaId":"",

"MsgId":"",

"FileName":"",

"HasProductId":0,

"FileSize":"",

"CreateTime":1454602196,

"SubMsgType":0

}

MsgType:

1文本消息

3圖片消息

34語音消息

37 VERIFYMSG 好友驗證消息

40 POSSIBLEFRIEND_MSG

42共享名片

43視頻通話消息

47動畫表情

48位置消息

49分享鏈接

50 VOIPMSG

51微信初始化消息

52 VOIPNOTIFY

53 VOIPINVITE

62小視頻

9999 SYSNOTICE

10000系統消息

10002撤回消息

3.9.2 微信初始化消息

 

MsgType:51

FromUserName:自己ID

ToUserName:自己ID

StatusNotifyUserName:最近聯繫的聯繫人ID

Content:

<msg>

<op id='4'>

<username>

// 最近聯繫的聯繫人

filehelper,xxx@chatroom,wxid_xxx,xxx,...

</username>

<unreadchatlist>

<chat>

<username>

// 朋友圈

MomentsUnreadMsgStatus

</username>

<lastreadtime>

1454502365

</lastreadtime>

</chat>

</unreadchatlist>

<unreadfunctionlist>

// 未讀的功能賬號消息, 羣發助手, 漂流瓶等

</unreadfunctionlist>

</op>

</msg>

3.9.3 文本消息

MsgType:1

FromUserName:發送方ID

ToUserName:接收方ID

Content:消息內容

圖片消息

MsgType:3

FromUserName:發送方ID

ToUserName:接收方ID

MsgId:用於獲取圖片

Content:

<msg>

<img length="6503" hdlength="0"/>

<commenturl></commenturl>

</msg>

3.9.4 小視頻消息

 

MsgType:62

FromUserName:發送方ID

ToUserName:接收方ID

MsgId:用於獲取小視頻

Content:

<msg>

<img length="6503" hdlength="0"/>

<commenturl></commenturl>

</msg>

3.9.5 地理位置消息

 

MsgType:1

FromUserName:發送方ID

ToUserName:接收方ID

Content: http://weixin.qq.com/cgi-bin/redirectforward?args=xxx

// 屬於文本消息, 只不過內容是一個跳轉到地圖的鏈接

3.9.6 名片消息

 

MsgType:42

FromUserName:發送方ID

ToUserName:接收方ID

Content:

<?xml version="1.0"?>

<msg bigheadimgurl="" smallheadimgurl="" username="" nickname="" shortpy=""alias="" imagestatus="3" scene="17" province="" city="" sign="" sex="1" certflag="0" certinfo="" brandIconUrl="" brandHomeUrl="" brandSubscriptConfigUrl="" brandFlags="0" regionCode=""/>

RecommendInfo:

{

"UserName":"xxx",// ID

"Province":"xxx",

"City":"xxx",

"Scene":17,

"QQNum":0,

"Content":"",

"Alias":"xxx",// 微信號

"OpCode":0,

"Signature":"",

"Ticket":"",

"Sex":0,// 1:男, 2:女

"NickName":"xxx",// 暱稱

"AttrStatus":4293221,

"VerifyFlag":0

}

3.9.7 語音消息

 

MsgType:34

FromUserName:發送方ID

ToUserName:接收方ID

MsgId:用於獲取語音

Content:

<msg>

<voicemsg endflag="1" cancelflag="0" forwardflag="0" voiceformat="4" voicelength="1580" length="2026" bufid="216825389722501519" clientmsgid="49efec63a9774a65a932a4e5fcd4e923filehelper174_1454602489" fromusername=""/>

</msg>

3.9.8 動畫表情

 

MsgType:47

FromUserName:發送方ID

ToUserName:接收方ID

Content:

<msg>

<emoji fromusername ="" tousername ="" type="2"

idbuffer="media:0_0" md5="e68363487d8f0519c4e1047de403b2e7"

len ="86235"

productid="com.tencent.xin.emoticon.bilibili"

androidmd5="e68363487d8f0519c4e1047de403b2e7"

androidlen="86235"

s60v3md5 ="e68363487d8f0519c4e1047de403b2e7"

s60v3len="86235"

s60v5md5 ="e68363487d8f0519c4e1047de403b2e7" s60v5len="86235"

cdnurl ="http://emoji.qpic.cn/wx_emoji/eFygWtxcoMF8M0oCCsksMA0gplXAFQNpiaqsmOicbXl1OC4Tyx18SGsQ/"

designerid =""

thumburl ="http://mmbiz.qpic.cn/mmemoticon/dx4Y70y9XctRJf6tKsy7FwWosxd4DAtItSfhKS0Czr56A70p8U5O8g/0"

encrypturl ="http://emoji.qpic.cn/wx_emoji/UyYVK8GMlq5VnJ56a4GkKHAiaC266Y0me0KtW6JN2FAZcXiaFKccRevA/"

aeskey="a911cc2ec96ddb781b5ca85d24143642">

</emoji>

<gameext type="0" content="0"></gameext>

</msg>

3.9.9 普通鏈接或應用分享消息

 

MsgType:49

AppMsgType:5

FromUserName:發送方ID

ToUserName:接收方ID

Url:鏈接地址

FileName:鏈接標題

Content:

<msg>

<appmsg appid="" sdkver="0">

<title></title>

<des></des>

<type>5</type>

<content></content>

<url></url>

<thumburl></thumburl>

...

</appmsg>

<appinfo>

<version></version>

<appname></appname>

</appinfo>

</msg>

3.9.10 音樂鏈接消息

 

MsgType:49

AppMsgType:3

FromUserName:發送方ID

ToUserName:接收方ID

Url:鏈接地址

FileName:音樂名

AppInfo:// 分享鏈接的應用

{

Type:0,

AppID: wx485a97c844086dc9

}

Content:

<msg>

<appmsg appid="wx485a97c844086dc9" sdkver="0">

<title></title>

<des></des>

<action></action>

<type>3</type>

<showtype>0</showtype>

<mediatagname></mediatagname>

<messageext></messageext>

<messageaction></messageaction>

<content></content>

<contentattr>0</contentattr>

<url></url>

<lowurl></lowurl>

<dataurl>

http://ws.stream.qqmusic.qq.com/C100003i9hMt1bgui0.m4a?vkey=6867EF99F3684&amp;guid=ffffffffc104ea2964a111cf3ff3edaf&amp;fromtag=46

</dataurl>

<lowdataurl>

http://ws.stream.qqmusic.qq.com/C100003i9hMt1bgui0.m4a?vkey=6867EF99F3684&amp;guid=ffffffffc104ea2964a111cf3ff3edaf&amp;fromtag=46

</lowdataurl>

<appattach>

<totallen>0</totallen>

<attachid></attachid>

<emoticonmd5></emoticonmd5>

<fileext></fileext>

</appattach>

<extinfo></extinfo>

<sourceusername></sourceusername>

<sourcedisplayname></sourcedisplayname>

<commenturl></commenturl>

<thumburl>

http://imgcache.qq.com/music/photo/album/63/180_albumpic_143163_0.jpg

</thumburl>

<md5></md5>

</appmsg>

<fromusername></fromusername>

<scene>0</scene>

<appinfo>

<version>29</version>

<appname>搖一搖搜歌</appname>

</appinfo>

<commenturl></commenturl>

</msg>

3.9.11 羣消息

 

MsgType:1

FromUserName:@@xxx

ToUserName:@xxx

Content:

@xxx:<br/>xxx

3.9.12 紅包消息

 

MsgType:49

AppMsgType:2001

FromUserName:發送方ID

ToUserName:接收方ID

Content:未知

網頁版(目前走的是系統消息)

 

MsgType:10000

FromUserName:發送方ID

ToUserName:自己ID

Content:

"你已添加了 xxx , 現在可以開始聊天了。"

"如果陌生人主動添加你爲朋友, 請謹慎覈實對方身份。"

"收到紅包, 請在手機上查看"


4.好友操作

4.1 添加好友和通過好友驗證(post)

請求

https://wx.qq.com/cgi-bin/mmwebwx-bin/webwxverifyuser?r=1476779339614&lang=zh_CN&pass_ticket=td%252BZEx1ANBEB8wz%252BxjYhotl3fChIto%252FyC4w%252FNHMopoqOP8Eya9%252FivEs2lsPEDqEj

  • header 
    Content-Type:application/json;charset=UTF-8

  • content

    • 添加好友

{

"BaseRequest":{

"Uin":1443149207,

"Sid":"HqU75NIXRJ6qqu8t",

"Skey":"@crypt_d9da2d81_f3a62e80c16e61ad660dffd14e0ef72c",

"DeviceID":"e799452821014375"

},

"Opcode":2,

"VerifyUserListSize":1,

"VerifyUserList":[

{

"Value":"@2cbb226c459cc5203aa991942f41e19820f5ef3ccceb2dece598412f36406d1f","VerifyUserTicket":""

}

],

"VerifyContent":"我是lbbniu.cn",

"SceneListCount":1,

"SceneList":[

33

],

"skey":"@crypt_d9da2d81_f3a62e80c16e61ad660dffd14e0ef72c"

}

- 通過好友驗證

{

"BaseRequest":{

"Uin":1443149207,

"Sid":"HqU75NIXRJ6qqu8t",

"Skey":"@crypt_d9da2d81_f3a62e80c16e61ad660dffd14e0ef72c",

"DeviceID":"e606224692711308"

},

"Opcode":3,

"VerifyUserListSize":1,

"VerifyUserList":[

{

"Value":"@2cbb226c459cc5203aa991942f41e19820f5ef3ccceb2dece598412f36406d1f",

"VerifyUserTicket":"v2_9d2e1b01ee6de582a237f6369a6746c84d3a072b48bf36f152c5c947505e871189cafa09748e05bab27caf812a8f3a12d51da3dceda3cab5f52a406ec124a4a9@stranger"

}

],

"VerifyContent":"",

"SceneListCount":1,

"SceneList":[

33

],

"skey":"@crypt_d9da2d81_f3a62e80c16e61ad660dffd14e0ef72c"

}

響應

{

"BaseResponse":{

"Ret":0,

"ErrMsg":""

}

}

4.2 好友驗證消息體

<msgfromusername="liubingbing889129"encryptusername="v1_18874657c313914eff3c00cfd89275a4fa5c0753c73a63d78b893dd29f814e0e2a34dabe550e3d4199b0c4d518d3019b@stranger"fromnickname="LbbNiu"content="驗證消息內容"shortpy="LBBNIU"imagestatus="3"scene="14"country="CN"province="Beijing"city="Chaoyang"sign=""percard="1"sex="1"alias="lbbniu"weibo="http://t.qq.com/lbbniu"weibonickname="微博暱稱"albumflag="3"albumstyle="0"albumbgimgid=""snsflag="17"snsbgimgid="http://mmsns.qpic.cn/mmsns/4376ae1e0cf0ccced233def9ad1560d0dec29d64941ab85a901c0129f89f98ce9b8524263f1c393a874098cc9f1e4961624ddae970ce1bc0/0"snsbgobjectid="12152681488304050449"mhash="c07f008cf5e3f34415e4baa355fb4f47"mfullhash="c07f008cf5e3f34415e4baa355fb4f47"bigheadimgurl="http://wx.qlogo.cn/mmhead/ver_1/qFZwXv2etMCTcs3RUKDOlmw9GQyMfAdYcbQyd5cH9SssCdTLFmjNdZyLkZ14DdpAUv9qwibl2icia1M6Mng30Adibw/0"smallheadimgurl="http://wx.qlogo.cn/mmhead/ver_1/qFZwXv2etMCTcs3RUKDOlmw9GQyMfAdYcbQyd5cH9SssCdTLFmjNdZyLkZ14DdpAUv9qwibl2icia1M6Mng30Adibw/132"ticket="v2_9d2e1b01ee6de582a237f6369a6746c84d3a072b48bf36f152c5c947505e871189cafa09748e05bab27caf812a8f3a12d51da3dceda3cab5f52a406ec124a4a9@stranger"opcode="2"googlecontact=""qrticket=""chatroomusername="1656114910@chatroom"sourceusername=""sourcenickname="">

<brandlistcount="0"ver="652639419"></brandlist>

</msg>

"RecommendInfo":{

"UserName":"@2cbb226c459cc5203aa991942f41e19820f5ef3ccceb2dece598412f36406d1f",

"NickName":"LbbNiu",

"QQNum":0,

"Province":"",

"City":"æ",

"Content":"",

"Signature":"",

"Alias":"lbbniu",

"Scene":14,

"VerifyFlag":0,

"AttrStatus":4305791,

"Sex":1,

"Ticket":"v2_9d2e1b01ee6de582a237f6369a6746c84d3a072b48bf36f152c5c947505e871189cafa09748e05bab27caf812a8f3a12d51da3dceda3cab5f52a406ec124a4a9@stranger",

"OpCode":2

}

4.3 創建羣聊(post)

請求

https://wx.qq.com/cgi-bin/mmwebwx-bin/webwxcreatechatroom?r=1476618448303&lang=zh_CN

  • header 
    Content-Type:application/json;charset=UTF-8

  • content

{

"MemberCount":3,

"MemberList":[

{

"UserName":"@fe20084fb8e3b488f49d3df2bf3ec2837daeb468abfe62a48ef39a6e407cab0e"

},

....

],

"Topic":"",

"BaseRequest":{

"Uin":1443149207,

"Sid":"HqU75NIXRJ6qqu8t",

"Skey":"@crypt_d9da2d81_f3a62e80c16e61ad660dffd14e0ef72c",

"DeviceID":"e280173725621646"

}

}

  1. UserName初始化接口中獲取

響應

{

"BaseResponse":{

"Ret":0,

"ErrMsg":"Everything is OK"

},

"Topic":"",

"PYInitial":"",

"QuanPin":"",

"MemberCount":3,

"MemberList":[

{

"Uin":0,

"UserName":"@fe20084fb8e3b488f49d3df2bf3ec2837daeb468abfe62a48ef39a6e407cab0e",

"NickName":"111111",

"AttrStatus":0,

"PYInitial":"",

"PYQuanPin":"",

"RemarkPYInitial":"",

"RemarkPYQuanPin":"",

"MemberStatus":0,

"DisplayName":"",

"KeyWord":""

},

...

],

"ChatRoomName":"@@45340ba1e520285af196cef99d2f41a2bdb5cc568569efa178354f08eb863d00",

"BlackList":""

}

4.4 羣聊踢人

請求

https://wx.qq.com/cgi-bin/mmwebwx-bin/webwxupdatechatroom?fun=delmember

  • header 
    Content-Type:application/json;charset=UTF-8

  • content

{

"DelMemberList":"@2cbb226c459cc5203aa991942f41e19820f5ef3ccceb2dece598412f36406d1f",

"ChatRoomName":"@@45340ba1e520285af196cef99d2f41a2bdb5cc568569efa178354f08eb863d00",

"BaseRequest":{

"Uin":1443149207,

"Sid":"HqU75NIXRJ6qqu8t",

"Skey":"@crypt_d9da2d81_f3a62e80c16e61ad660dffd14e0ef72c",

"DeviceID":"e934789096108643"

}

}

 

DelMemberList好友id

ChatRoomName羣組id

響應

{

"BaseResponse":{

"Ret":0,

"ErrMsg":""

}

,

"MemberCount":0,

"MemberList":[]

}

4.5 羣聊邀請好友

請求

https://wx.qq.com/cgi-bin/mmwebwx-bin/webwxupdatechatroom?fun=addmember

  • header 
    Content-Type:application/json;charset=UTF-8

  • content

{

"AddMemberList":"@2cbb226c459cc5203aa991942f41e19820f5ef3ccceb2dece598412f36406d1f",

"ChatRoomName":"@@45340ba1e520285af196cef99d2f41a2bdb5cc568569efa178354f08eb863d00",

"BaseRequest":{

"Uin":1443149207,

"Sid":"HqU75NIXRJ6qqu8t",

"Skey":"@crypt_d9da2d81_f3a62e80c16e61ad660dffd14e0ef72c",

"DeviceID":"e681854808526145"

}

}

 

AddMemberList好友id列表

ChatRoomName羣組id

響應

{

"BaseResponse":{

"Ret":0,

"ErrMsg":""

},

"MemberCount":1,

"MemberList":[

{

"Uin":0,

"UserName":"@2cbb226c459cc5203aa991942f41e19820f5ef3ccceb2dece598412f36406d1f",

"NickName":"LbbNiu",

"AttrStatus":0,

"PYInitial":"",

"PYQuanPin":"",

"RemarkPYInitial":"",

"RemarkPYQuanPin":"",

"MemberStatus":0,

"DisplayName":"",

"KeyWord":""

}

...

]

}

4.6 修改羣聊名稱

請求

https://wx.qq.com/cgi-bin/mmwebwx-bin/webwxupdatechatroom?fun=modtopic

  • header 
    Content-Type:application/json;charset=UTF-8

  • content

{

"NewTopic":"lbbniu.com",

"ChatRoomName":"@@45340ba1e520285af196cef99d2f41a2bdb5cc568569efa178354f08eb863d00",

"BaseRequest":{

"Uin":1443149207,

"Sid":"HqU75NIXRJ6qqu8t",

"Skey":"@crypt_d9da2d81_f3a62e80c16e61ad660dffd14e0ef72c",

"DeviceID":"e326783138505913"

}

}

 

NewTopic新羣名稱

ChatRoomName羣組id

響應

{

"BaseResponse":{

"Ret":0,

"ErrMsg":""

}

,

"MemberCount":0,

"MemberList":[]

}

4.7 置頂聊天

請求

https://wx.qq.com/cgi-bin/mmwebwx-bin/webwxoplog

  • header 
    Content-Type:application/json;charset=UTF-8

  • content

{

"UserName":"@@45340ba1e520285af196cef99d2f41a2bdb5cc568569efa178354f08eb863d00",

"CmdId":3,

"OP":1,

"BaseRequest":{

"Uin":1443149207,

"Sid":"HqU75NIXRJ6qqu8t",

"Skey":"@crypt_d9da2d81_f3a62e80c16e61ad660dffd14e0ef72c",

"DeviceID":"e736741369963778"

}

}

響應

 

{

"BaseResponse":{

"Ret":0,

"ErrMsg":""

}

}

4.8 取消置頂

請求

https://wx.qq.com/cgi-bin/mmwebwx-bin/webwxoplog

  • header 
    Content-Type:application/json;charset=UTF-8

  • content

{

"UserName":"@@45340ba1e520285af196cef99d2f41a2bdb5cc568569efa178354f08eb863d00",

"CmdId":3,

"OP":0,

"BaseRequest":{

"Uin":1443149207,

"Sid":"HqU75NIXRJ6qqu8t",

"Skey":"@crypt_d9da2d81_f3a62e80c16e61ad660dffd14e0ef72c",

"DeviceID":"e736741369963778"

}

}

響應

 

{

"BaseResponse":{

"Ret":0,

"ErrMsg":""

}

}

4.9 給好友添加備註

請求

https://wx.qq.com/cgi-bin/mmwebwx-bin/webwxoplog

  • header 
    Content-Type:application/json;charset=UTF-8

  • content

{

"UserName":"@2cbb226c459cc5203aa991942f41e19820f5ef3ccceb2dece598412f36406d1f",

"CmdId":2,

"RemarkName":"lbbniu.com",

"BaseRequest":{

"Uin":1443149207,

"Sid":"HqU75NIXRJ6qqu8t",

"Skey":"@crypt_d9da2d81_f3a62e80c16e61ad660dffd14e0ef72c",

"DeviceID":"e573447900268361"

}

}

響應

 

{

"BaseResponse":{

"Ret":0,

"ErrMsg":""

}

}

發佈了171 篇原創文章 · 獲贊 21 · 訪問量 24萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章