本系列會講述微信機器人技術的實現,第一講主要了解微信網頁版給咱們提供的http接口,這一步是作一個基於微信網頁版機器人的基礎和難點。前端
本講將微信網頁版的主要接口羅列出,並給出了入參和返回值的含義和用法。一些不經常使用的接口後續會逐漸補充,也歡迎你們與我交流。web
後面幾講將會在代碼中探討微信機器人的設計思路,歡迎你們持續關注。json
一、獲取uuid瀏覽器
參數 | 示例值 | 說明 |
appid | wx782c26e4c19acffb | 固定值 |
fun | new | 固定值 |
lang | zh_CN | 表示中文字符集 |
window.QRLogin.code = 200; window.QRLogin.uuid = "wb7R2kx9dA==";
二、顯示二維碼安全
參數 | 示例值 | 說明 |
t | webwx | 固定值 |
三、輪詢登陸服務器
參數 | 示例值 | 說明 |
tip | 1 | 1:未掃描 0:一掃描 |
uuid | wb7R2kx9dA== | 第一步所獲取的uuid |
window.code=200(408爲未掃碼,201爲已掃碼但未點擊登陸,200爲成功登陸);window.redirect_uri="https://wx.qq.com/cgi-bin/mmwebwx-bin/webwxnewloginpage?ticket=AfrMMbhsnElmA7xc1R9CWUq-@qrticket_0&uuid=4ZnG7WZ0Cg==&lang=zh_CN&scan=1520738372";
四、登陸並獲取公參微信
<error>
<ret>0</ret>
<message></message>
<skey>@crypt_8b4f09cc_a5871dc10130a48703b9afd5602152e4</skey>
<wxsid>+urBrYI292xoIknf</wxsid>
<wxuin>211722515</wxuin>
<pass_ticket>qg%2BL%2BfjNnoHyqYsL3xj0KoNi5nqchsInPWWSxDwqCJ8%3D</pass_ticket>
<isgrayscale>1</isgrayscale>
</error>
五、微信初始化cookie
參數 | 示例值 | 說明 |
pass_ticket | qg%2BL%2BfjNnoHyqYsL3xj0KoNi5nqchsInPWWSxDwqCJ8%3D | 公參中的值 |
{
BaseRequest: {
Uin: 211722515,
Sid: +urBrYI292xoIknf,
Skey: @crypt_8b4f09cc_a5871dc10130a48703b9afd5602152e4,
DeviceID: e545297464380306
上邊的DeviceID能夠用以下代碼生成,每次登陸過程當中保持一致。String DeviceID = "e" + String.valueOf(new Random().nextLong()).substring(1, 16);
}
}
{ "BaseResponse": { "Ret": 0, "ErrMsg": "" }, "Count": 11, "ContactList": [{微信首頁的聯繫人,不是保存在通信錄中的聯繫人 "Uin": 0, "UserName": "filehelper", "NickName": "文件傳輸助手", "HeadImgUrl": "/cgi-bin/mmwebwx-bin/webwxgeticon?seq=680769514&username=filehelper&skey=@crypt_8b4f09cc_a5871dc10130a48703b9afd5602152e4", "ContactFlag": 1, "MemberCount": 0, "MemberList": [], "RemarkName": "", "HideInputBarFlag": 0, "Sex": 0, "Signature": "", "VerifyFlag": 0, "OwnerUin": 0, "PYInitial": "WJCSZS", "PYQuanPin": "wenjianchuanshuzhushou", "RemarkPYInitial": "", "RemarkPYQuanPin": "", "StarFriend": 0, "AppAccountFlag": 0, "Statues": 0, "AttrStatus": 0, "Province": "", "City": "", "Alias": "", "SnsFlag": 0, "UniFriend": 0, "DisplayName": "", "ChatRoomId": 0, "KeyWord": "fil", "EncryChatRoomId": "", "IsOwner": 0 }, ......此處省略剩下的10個聯繫人信息 ], "SyncKey": { 同步消息時用的syncKey,用於以後輪詢消息的接口 "Count": 4, "List": [{ "Key": 1, "Val": 700722177 }, { "Key": 2, "Val": 700723184 }, { "Key": 3, "Val": 700723136 }, { "Key": 1000, "Val": 1520723642 }] }, "User": { 登陸者的信息 "Uin": 211722515, "UserName": "@f4c054c78f40743b095b85409dbdc1b3", 微信隨機碼,每一個聯繫人和羣都有,每次登陸由微信端隨機分配 "NickName": "測試微信號的暱稱", "HeadImgUrl": "/cgi-bin/mmwebwx-bin/webwxgeticon?seq=1730335888&username=@f4c054c78f40743b095b85409dbdc1b3&skey=@crypt_8b4f09cc_a5871dc10130a48703b9afd5602152e4", "RemarkName": "", "PYInitial": "", "PYQuanPin": "", "RemarkPYInitial": "", "RemarkPYQuanPin": "", "HideInputBarFlag": 0, "StarFriend": 0, "Sex": 1, "Signature": "這裏是簽名", "AppAccountFlag": 0, "VerifyFlag": 0, "ContactFlag": 0, "WebWxPluginSwitch": 0, "HeadImgFlag": 1, "SnsFlag": 17 }, "ChatSet": "filehelper,weixin,@52d5b97ca1bed2d76b405fba4c4ded6c893bd6b28cc514344dd9a7d8cd766286,@4baf3160e84b9e726efd1a0629d16b01,@@54a4fd2c81875aac779935330b67bf7905793bb66da9c6d4029f18f4927b3c1c,@@9542a551bfcafe1ae83b931d21b318573c8c6e2c67f3eaef189e7e9179cdb2d1,@ac3532106e21aa250cc746055a0c72d5,@d593e5745931641d060cdc9fcda5d996,@34f12e07290f62677137181998bf4c1eb0a9c128f2355562e8cc7967d0f9a044,@@31e445167b2fd23404b672f6f1a4a805fffbd369d6bae8efe959240a6c50cf46,@@c5fa6cb3779e217b5ae3e9b3d53faef09d6cde9615106ebe0a115de38976c7fc,@513fcb83ccc696b9d90206f0e80eb8e341e35e1f464b08446795132d180db040,@@b944058f6fd91b850867bb1f534205e86460b4b3a947f4ca4bd49109e532116f,@@859e98412d1faf03abdf784e97ed66b25c52dccc7ec446d681b2906525262fcd,@257fb1c805c1429ca45a737143d7a7e1302487d9bbb268bf2dd8a564bf814186,filehelper,@@dc3e7f04b1ccead2ecf8c50eaa476d6c71dc3f7396696be0724002e1ee228812,@@d1758feb60b1ff7ad262b8fb05ee9f1c1821722a0376a1431cee351c75cbebc3,@@e49ba13661221be9c9f81fb952391754ee74f98d2457f46364bdb745943b2bfc,@@a5cdd9eb797807cc081bc0e3ab3f101c9dc18d86d527c5defed8e8fd9010ec06,@@dfab3cde2a39ccdf31da803381528f130dae207583a5c088514bf4e1a0af49ab,@@13776e6ea475a8e86a46e4f242917db146664572e910dcca976047cb31e660f4,@@d1999c210e6f9a19d28b4a8fcc391a7b612c9765ff5bd078aaa022e1cc8bbf5c,", "SKey": "@crypt_8b4f09cc_ce5178b3c156048fff69cdf1fccc31e4", "ClientVersion": 637927733, "SystemTime": 1520742050, "GrayScale": 1, "InviteStartCount": 40, "MPSubscribeMsgCount": 1, "MPSubscribeMsgList": [{ "UserName": "@4baf3160e84b9e726efd1a0629d16b01", "MPArticleCount": 1, "MPArticleList": [{ "Title": "不動手就能逛淘寶,這又是什麼「黑科技」?英國小哥表示:中文說得溜就是這麼方便! | 解碼新時代", "Digest": "張口說話就能逛淘寶,沉溺「黑科技」的英國小哥表示不想回家了!", "Cover": "http://mmbiz.qpic.cn/mmbiz_jpg/8vd2Hk2TS2Pfibh9ILZKicg5icBlWKHBIVibVM8Vupsg3NsfSnibzptB9XQxArqzFmfOw7nlk6ByTdNvWBoBf4NjVmQ/640?wxtype=jpeg&wxfrom=0", "Url": "http://mp.weixin.qq.com/s?__biz=MjM5MzI3NTI2MA==&mid=2651224106&idx=1&sn=0a5772013ae7c14dd9ac854f30fad934&chksm=bd6b54398a1cdd2f6f9c1d61c93aa3248968b8b56206a0af85341f510322b21548c975d8ebba&scene=0#rd" }], "Time": 1520732033, "NickName": "中國日報雙語新聞" }], "ClickReportInterval": 600000 }
六、獲取聯繫人列表app
參數 | 示例值 | 說明 |
pass_ticket | yp5RfCpb%2FsNVex0Uepn1BWXNCYCqTfqe8NOYzan%2B4Y4%3D | 公參中的值 |
skey | @crypt_8b4f09cc_1b827f84b1535b6be801f00427499050 | 公參中的值 |
{
"BaseRequest": {均是公參中的值
"Uin": 211722515,
"Sid": "+FhlgkGS3wD/GKQw",
"Skey": "@crypt_8b4f09cc_1b827f84b1535b6be801f00427499050",
"DeviceID": "e609547902722302"
}
}
{ "BaseResponse": { "Ret": 0, "ErrMsg": "" }, "MemberCount": 771, "MemberList": [{ "Uin": 0, "UserName": "@9c30c8d81e75a7eff0603cdd5de860b18fe92995845473fc2f0cda6ed76053cb",(微信隨機碼,潛規則:前面@爲聯繫人,@@爲羣) "NickName": "Nandi Wardhana",(聯繫人的微信暱稱) "HeadImgUrl": "/cgi-bin/mmwebwx-bin/webwxgeticon?seq=620986971&username=@9c30c8d81e75a7eff0603cdd5de860b18fe92995845473fc2f0cda6ed76053cb&skey=@crypt_8b4f09cc_1b827f84b1535b6be801f00427499050", "ContactFlag": 3, "MemberCount": 0,(若是是羣,該字段表示成員數量) "MemberList": [],(羣成員列表) "RemarkName": "",(備註名稱,若是空則說明沒有給他備註) "HideInputBarFlag": 0, "Sex": 1,(性別,1爲男,2爲女) "Signature": "Stay young naturally...",(簽名) "VerifyFlag": 0,(用來判斷是不是公衆號或服務號的字段) "OwnerUin": 0, "PYInitial": "NANDIWARDHANA", "PYQuanPin": "NandiWardhana",(名字拼音全拼) "RemarkPYInitial": "", "RemarkPYQuanPin": "", "StarFriend": 0, "AppAccountFlag": 0, "Statues": 0, "AttrStatus": 2359303, "Province": "Jakarta Raya",(省份) "City": "",(城市) "Alias": "", "SnsFlag": 17, "UniFriend": 0, "DisplayName": "",(若是是羣內成員,該字段表示羣內名稱) "ChatRoomId": 0, "KeyWord": "", "EncryChatRoomId": "",(若是是羣,該字段表示羣的id,不一樣於微信隨機碼@@那個) "IsOwner": 0 }, ... 此處省略剩下770個聯繫人信息 ] }
七、批量獲取聯繫人詳情dom
參數 | 示例值 | 說明 |
pass_ticket | yp5RfCpb%2FsNVex0Uepn1BWXNCYCqTfqe8NOYzan%2B4Y4%3D | 公參中的值 |
type | ex | 我也不知道這是啥意思 |
{
"BaseRequest": {
"Uin": 211722515,
"Sid": "+FhlgkGS3wD/GKQw",
"Skey": "@crypt_8b4f09cc_1b827f84b1535b6be801f00427499050",
"DeviceID": "e862192966399662"
},
"Count": 2,
"List": [{ 這裏表示須要獲取詳情的全部聯繫人
"UserName": "@@e203c90e07d64242336d573acd4a1db1c01ccb92ca05410444a3003c282c21db",
"EncryChatRoomId": ""
},
{
"UserName": "@ba194a63575be7fd0f4ea4e4547b2942d0dccc7fffc00ef5a6d141f93adb7739",
"EncryChatRoomId": ""
}
]
}
{
"BaseResponse": {
"Ret": 0,
"ErrMsg": ""
},
"Count": 2,
"ContactList": [{
"Uin": 0,
"UserName": "@ba194a63575be7fd0f4ea4e4547b2942d0dccc7fffc00ef5a6d141f93adb7739",
"NickName": "張三丰",
"HeadImgUrl": "/cgi-bin/mmwebwx-bin/webwxgeticon?seq=680786093&username=@ba194a63575be7fd0f4ea4e4547b2942d0dccc7fffc00ef5a6d141f93adb7739&skey=",
"ContactFlag": 3,
"MemberCount": 0,
"MemberList": [],
"RemarkName": "豐哥",
"HideInputBarFlag": 0,
"Sex": 2,
"Signature": "<span class=\"emoji emoji2600\"></span> 必定會找到<span class=\"emoji emoji1f31b\"></span>",
"VerifyFlag": 0,
"OwnerUin": 0,
"PYInitial": "ZSF",
"PYQuanPin": "zhangsanfeng",
"RemarkPYInitial": "FG",
"RemarkPYQuanPin": "fengge",
"StarFriend": 0,
"AppAccountFlag": 0,
"Statues": 0,
"AttrStatus": 111719,
"Province": "北京",
"City": "平谷",
"Alias": "",
"SnsFlag": 17,
"UniFriend": 0,
"DisplayName": "",
"ChatRoomId": 0,
"KeyWord": "",
"EncryChatRoomId": "0",
"IsOwner": 0
}
...此處省略第二個聯繫人信息
]
}
八、消息檢查
參數 | 示例值 | 說明 |
deviceid | e547171618594402 | 參考5中的生成方式 |
sid | +FhlgkGS3wD/GKQw | 公參中的值 |
skey | @crypt_8b4f09cc_1b827f84b1535b6be801f00427499050 | 公參中的值 |
synckey | 1_700722177|2_700724323|3_700724315|1000_1520925834 | 微信初始化後獲取的4個key,這些key會隨着每次獲取最新消息(參見9)後的返回值更新,其目的在於每次同步消息後記錄一個當前同步的狀態。 |
uin | 211722515 | 公參中的值 |
window.synccheck={retcode:"0",selector:"2"}
retcode
SUCCESS("0", "成功"),
TICKET_ERROR("-14", "ticket錯誤"),
PARAM_ERROR("1", "傳入參數錯誤"),
NOT_LOGIN_WARN("1100", "未登陸提示"),
NOT_LOGIN_CHECK("1101", "未檢測到登陸"),
COOKIE_INVALID_ERROR("1102", "cookie值無效"),
LOGIN_ENV_ERROR("1203", "當前登陸環境異常,爲了安全起見請不要在web端進行登陸"),
TOO_OFEN("1205", "操做頻繁");
selector
NORMAL("0", "正常"),
NEW_MSG("2", "有新消息"),
MOD_CONTACT("4", "有人修改了本身的暱稱或你修改了別人的備註"),
ADD_OR_DEL_CONTACT("6", "存在刪除或者新增的好友信息"),
ENTER_OR_LEAVE_CHAT("7", "進入或離開聊天界面");
九、獲取最新消息
參數 | 示例值 | 說明 |
sid | +FhlgkGS3wD/GKQw | 公參中的值 |
skey | @crypt_8b4f09cc_1b827f84b1535b6be801f00427499050 | 公參中的值 |
uin | 211722515 | 公參中的值 |
{ "BaseRequest": { "Uin": 211722515, "Sid": "+FhlgkGS3wD/GKQw", "Skey": "@crypt_8b4f09cc_1b827f84b1535b6be801f00427499050", "DeviceID": "e304534670317808" }, "SyncKey": { "Count": 4, "List": [{ "Key": 1, "Val": 700722177 }, { "Key": 2, "Val": 700724323 }, { "Key": 3, "Val": 700724315 }, { "Key": 1000, "Val": 1520925834 }] }, "rr": -508959981 String.valueOf(-new Date().getTime() / 1000) }
{ "BaseResponse": { "Ret": 0, "ErrMsg": "" }, "AddMsgCount": 1, 新增信息 "AddMsgList": [{ "MsgId": "320984672637990367", 服務端返回的消息id,可用於撤回接口參數。若是是圖片,該參數還能夠做爲調用微信獲取圖片接口的參數之一。 "FromUserName": "@abf90232027117affa7f0c0df3d1bf20", 發消息的人 "ToUserName": "@abf90232027117affa7f0c0df3d1bf20", 發給誰 "MsgType": 51, 消息類型,1爲文字,3爲圖片...,具體請參照消息類型表 "Content": "", "Status": 3, "ImgStatus": 1, "CreateTime": 1520927383, "VoiceLength": 0, "PlayLength": 0, "FileName": "", "FileSize": "", "MediaId": "", "Url": "", "AppMsgType": 0, "StatusNotifyCode": 4, "ForwardFlag": 0, "AppInfo": { "AppID": "", "Type": 0 }, "HasProductId": 0, "Ticket": "", "ImgHeight": 0, "ImgWidth": 0, "SubMsgType": 0, "NewMsgId": 320984672637990367, "OriContent": "", "EncryFileName": "" }], "ModContactCount": 0, 聯繫人修改 "ModContactList": [], "DelContactCount": 0, 聯繫人刪除 "DelContactList": [], "ModChatRoomMemberCount": 0, 羣內成員變更 "ModChatRoomMemberList": [],"ContinueFlag": 0, "SyncKey": { 新一輪消息更新用這些SyncKey "Count": 7, "List": [{ "Key": 1, "Val": 700722177 }, { "Key": 2, "Val": 700724325 }, { "Key": 3, "Val": 700724315 }, { "Key": 11, "Val": 700724093 }, { "Key": 201, "Val": 1520927383 }, { "Key": 1000, "Val": 1520925834 }, { "Key": 1001, "Val": 1520917874 }] }, "SKey": "", "SyncCheckKey": { 新一輪消息同步用這些Key "Count": 7, "List": [{ "Key": 1, "Val": 700722177 }, { "Key": 2, "Val": 700724325 }, { "Key": 3, "Val": 700724315 }, { "Key": 11, "Val": 700724093 }, { "Key": 201, "Val": 1520927383 }, { "Key": 1000, "Val": 1520925834 }, { "Key": 1001, "Val": 1520917874 }] } }
十、建立羣聊
略
十一、修改羣聊
略
十二、發送消息
參數 | 示例值 | 說明 |
pass_ticket | yp5RfCpb%2FsNVex0Uepn1BWXNCYCqTfqe8NOYzan%2B4Y4%3D | 公參中的值 |
{ "BaseRequest": { "Uin": 211722515, "Sid": "+FhlgkGS3wD/GKQw", "Skey": "@crypt_8b4f09cc_1b827f84b1535b6be801f00427499050", "DeviceID": "e107694022625701" }, "Msg": { "Type": 1, "Content": "呵呵", "FromUserName": "@abf90232027117affa7f0c0df3d1bf20", "ToUserName": "filehelper", "LocalID": "15209344559450477", 時間戳左移4位隨後補上4位隨機數 "ClientMsgId": "15209344559450477"
"MediaId": "" 若是是圖片才傳這個值 }, "Scene": 0 }
{
"BaseResponse": {
"Ret": 0,
"ErrMsg": ""
},
"MsgID": "7615282929538795099", 服務端返回的消息id,可用於撤回等接口的參數
"LocalID": "15209344559450477" 本地的消息id,是你本身發請求時的參數
}
1三、上傳文件到微信服務器
參數 | 示例值 | 說明 |
pass_ticket | yp5RfCpb%2FsNVex0Uepn1BWXNCYCqTfqe8NOYzan%2B4Y4%3D | 公參中的值 |
-----------------------------41184676334 Content-Disposition: form-data; name="id" 此處隨意 WU_FILE_0 -----------------------------41184676334 Content-Disposition: form-data; name="name" 圖片名稱 Desert.jpg -----------------------------41184676334 Content-Disposition: form-data; name="type" 圖片類型 image/jpeg -----------------------------41184676334 Content-Disposition: form-data; name="lastModifiedDate" 發送時間,該參數可無 Tue Jul 14 2009 13:32:31 GMT+0800 -----------------------------41184676334 Content-Disposition: form-data; name="size" 圖片大小 845941 -----------------------------41184676334 Content-Disposition: form-data; name="chunks" 總共分多少批上傳 2 -----------------------------41184676334 Content-Disposition: form-data; name="chunk" 當前是第幾批 0 -----------------------------41184676334 Content-Disposition: form-data; name="mediatype" 當傳圖片時,此處寫pic pic -----------------------------41184676334 Content-Disposition: form-data; name="uploadmediarequest"
{
"UploadType": 2, 固定爲2
"BaseRequest": {
"Uin": 211722515,
"Sid": "+FhlgkGS3wD/GKQw",
"Skey": "@crypt_8b4f09cc_1b827f84b1535b6be801f00427499050",
"DeviceID": "e787605163473377"
},
"ClientMediaId": 1520935168955,
"TotalLen": 845941, 文件大小
"StartPos": 0,
"DataLen": 845941, 文件大小
"MediaType": 4, 固定爲4,表示圖片
"FromUserName": "@abf90232027117affa7f0c0df3d1bf20", 該參數可填可不填
"ToUserName": "filehelper", 該參數可填可不填
"FileMd5": "ba45c8f60456a672e003a875e469d0eb" 該參數隨機一個uuid便可
}
-----------------------------41184676334 Content-Disposition: form-data; name="webwx_data_ticket" gSenocajd7UaXQesCD3smJ5p -----------------------------41184676334 Content-Disposition: form-data; name="pass_ticket" yp5RfCpb/sNVex0Uepn1BWXNCYCqTfqe8NOYzan+4Y4= -----------------------------41184676334 Content-Disposition: form-data; name="filename"; filename="Desert.jpg" Content-Type: application/octet-stream
此處爲該文件的流,前端寫成<input type="file">就是這個效果
{ "BaseResponse": { "Ret": 0, "ErrMsg": "" },
下面的MediaId參數,做爲下一步發送圖片接口的入參,就能夠發送該圖片了 "MediaId": "@crypt_14402eb3_bb9eee20e7239fcd3323a0ea5a36cfd5e7fd162b72e03088efa4f63f53219c6f672c6be3ec1865291a70f38bb82bc5bf1d42166996b4a0313abe95454bff0316c19bfd29b71f4f98ccb7d301eed7b74995e35eabfd3f8264a3d684b8e9f08485ad00c3955cdc5b60ac96e67a9ca24bf7a01b9363ae0364f75fa0c9e6235e2dc91aef95b34c71c503deada9898a28ce5bf13d908f7834f7cae427aaba68aff5500125314f73b79f5a63103d430aa162420262e3d1a5e5f110cba0f2ee20017aaf0f127303153dcf63f9e5a56ff8c64f5dfb3f229011374b34fe7a905b0ee055d85b76827e2e68b8947c7b5fcd56c98ede9f012b6160a193762f63842886dca36872727db0c3cd4761af96c56bfdfb0a42630fee9954c764b5cd31f6ff666649b028bb1852366e639e1008cee678d5e587aabbe78014307ae1fbe638e2c0b52115", "StartPos": 845941, "CDNThumbImgHeight": 75, "CDNThumbImgWidth": 100, "EncryFileName": "Desert.jpg" }
1四、發送圖片
參數 | 示例值 | 說明 |
pass_ticket | yp5RfCpb%2FsNVex0Uepn1BWXNCYCqTfqe8NOYzan%2B4Y4%3D | 公參中的值 |
fun | async |
1五、獲取圖片
參數 | 示例值 | 說明 |
MsgID | 3176600141007621447 | 服務端返回的消息id |
skey | @crypt_8b4f09cc_1b827f84b1535b6be801f00427499050 | 公參中的值 |
type | slave | 該參數有則爲縮略圖,沒有則爲原圖 |
SUCCESS("0", "成功"), TICKET_ERROR("-14", "ticket錯誤"), PARAM_ERROR("1", "傳入參數錯誤"), NOT_LOGIN_WARN("1100", "未登陸提示"), NOT_LOGIN_CHECK("1101", "未檢測到登陸"), COOKIE_INVALID_ERROR("1102", "cookie值無效"), LOGIN_ENV_ERROR("1203", "當前登陸環境異常,爲了安全起見請不要在web端進行登陸"), TOO_OFEN("1205", "操做頻繁");
retcode SUCCESS("0", "成功"), TICKET_ERROR("-14", "ticket錯誤"), PARAM_ERROR("1", "傳入參數錯誤"), NOT_LOGIN_WARN("1100", "未登陸提示"), NOT_LOGIN_CHECK("1101", "未檢測到登陸"), COOKIE_INVALID_ERROR("1102", "cookie值無效"), LOGIN_ENV_ERROR("1203", "當前登陸環境異常,爲了安全起見請不要在web端進行登陸"), TOO_OFEN("1205", "操做頻繁"); selector NORMAL("0", "正常"), NEW_MSG("2", "有新消息"), MOD_CONTACT("4", "有人修改了本身的暱稱或你修改了別人的備註"), ADD_OR_DEL_CONTACT("6", "存在刪除或者新增的好友信息"), ENTER_OR_LEAVE_CHAT("7", "進入或離開聊天界面");
TEXT(1, "文本消息類型"), IMAGE(3, "圖片消息"), VOICE(34, "語音消息"), VIDEO(43, "小視頻消息"), MICRO_VIDEO(62, "短視頻消息"), EMOTI_CON(47, "表情消息"), MEDIA(49, "多媒體消息"), VOIP_MSG(50, ""), VOIP_NOTIFY(52, ""), VOIP_INVITE(53, ""), LOCATION(48, ""), STATUS_NOTIFY(51, "狀態通知,本身訪問了某一個聊天頁面"), SYS_NOTICE(9999, ""), POSSIBLE_FRIEND_MSG(40, ""), VERIFY_MSG(37, "好友請求"), SHARE_CARD(42, "分享名片"), SYS(10000, "系統消息"), RECALLED(10002, "撤回消息");