91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Python實現微信消息防撤回功能的實例代碼

發布時間:2020-09-13 15:50:18 來源:腳本之家 閱讀:197 作者:豬哥66 欄目:開發技術

微信(WeChat)是騰訊公司于2011年1月21日推出的一款社交軟件,8年時間微信做到日活10億,日消息量450億。在此期間微信也推出了不少的功能如:“搖一搖”、“漂流瓶”、“朋友圈”、“附近的人”、“公眾平臺”、“小程序”等等,涵蓋了我們生活的方方面面,微信正在慢慢踐行著他們的口號:微信,是一個生活方式

一、背景介紹

產品的更新迭代必然會伴隨著功能的推出和下線,今天我們要講的便是微信在2014年推出的一個小小的新功能:撤回消息,使用此功能者提神醒腦、神清氣爽,但被施用者卻可能會抓耳撓腮、咬牙切齒的想知道你到底撤回了啥,這就是所謂的好奇害死貓(Curiosity kills the cat),今天我們就來用Python實現防微信消息撤回,滿足一下大家的好奇心!

Python實現微信消息防撤回功能的實例代碼

二、功能設計

我們希望當有好友或者群中有人撤回消息的時候,第一時間能把原消息、發送者信息轉發到文件助手中(當然你也可以把消息發回給他,哈哈),這樣方便我們查看。

給大家來演示一下實現的功能。

Python實現微信消息防撤回功能的實例代碼

三、功能實現

1.微信撤回消息實現原理

我們先來了解一下微信撤回消息的原理:

其實微信撤回消息原理就是操作者在點擊撤回的時候,客戶端會自動發一條系統消息:“xxx撤回了一條消息”,然后對方app端收到消息后解析,替換原消息,改個顯示的樣式即可

豬哥給大家演示一下正常消息和撤回消息的內容到底有什么區別:

正常消息:Content='你好騷啊',大家留意一下MsgId='8784390488772995470'

Python實現微信消息防撤回功能的實例代碼

撤回消息:Content是一串xml格式的內容

Python實現微信消息防撤回功能的實例代碼

我們在下面把它格式化看看

<sysmsg type="revokemsg">
 <revokemsg>
 <session>xxx</session>
 <oldmsgid>1090336364</oldmsgid>
 <msgid>8784390488772995470</msgid>
 <replacemsg><![CDATA["豬哥" 撤回了一條消息]]></replacemsg>
 </revokemsg>
</sysmsg>

分析上面撤回的Content字段我們發現<msgid>8784390488772995470</msgid>的id與我們之前發送消息的id是一致的,而<replacemsg>這個標簽也驗證了我的猜想,確實是用新消息替換原消息。

2.找到被撤回消息

根據抓取正常消息和撤回消息的內容我們發現規則:撤回消息中會包含之前被撤回的那條消息的msgid,那我們只要找到之前那條消息就可以了,而wxpy模塊默認為我們緩存了最近的200條消息,所以我們只要遍歷這些歷史消息然后比較msgid就可以找到被撤回的那條消息啦!

Python實現微信消息防撤回功能的實例代碼

如果你微信消息太過頻繁,2分鐘之內消息數量超過200,則可以將max_history設置大些。

3.轉發被撤回消息

原理也搞懂了,被撤回的消息也找到了,就差最后一步轉發消息了,如果你之前玩過wxpy肯定會了吧,只要一行代碼就可以將消息轉發:

msg.forward(bot.file_helper)

4.代碼

原理和過程講完了,代碼貼出來給大家看看,注釋還是比較詳細,有不懂得話可以在學習群中問我。

Python實現微信消息防撤回功能的實例代碼

四、功能驗證

Python實現微信消息防撤回功能的實例代碼

五、總結

微信消息防撤回功能實現簡單,但實用性很好,目前項目的唯一缺點就是易用性差,簡單說就是我們還沒有將項目部署服務器,每次使用都得打開電腦然后運行還得一直開著,豬哥考慮后面將項目部署在云服務器上或者打包成apk,這樣就使用起來就非常方便了,而且還可以把apk發給朋友,讓朋友也體驗此功能!

學會這招,再也不用好奇對方到底撤回了啥消息,快下載項目試試吧!下載項目后可直接運行不需要修改代碼!

Github項目地址:https://github.com/pig6/wxrobot

wxpy官方文檔:https://wxpy.readthedocs.io/zh/latest

總結

以上所述是小編給大家介紹的Python實現微信消息防撤回功能的實例代碼,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復大家的。在此也非常感謝大家對億速云網站的支持!
如果你覺得本文對你有幫助,歡迎轉載,煩請注明出處,謝謝!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

海南省| 桑日县| 郯城县| 满城县| 始兴县| 舞阳县| 罗田县| 宜春市| 宁波市| 台湾省| 长阳| 延津县| 湟源县| 大冶市| 新乐市| 大方县| 濉溪县| 安西县| 朔州市| 柘荣县| 错那县| 横山县| 彩票| 托克托县| 钟祥市| 寿光市| 邻水| 北海市| 中牟县| 新干县| 大兴区| 鄂托克前旗| 高雄县| 玛多县| 苍梧县| 登封市| 伊宁县| 夏津县| 米泉市| 绍兴县| 静宁县|