首页
/
每日頭條
/
圖文
/
企業微信的社群玩法
企業微信的社群玩法
更新时间:2025-04-22 14:42:21

編輯導語:企業微信在群發消息、批量添加好友等場景中,難以滿足企業訴求,所以,某些企業便對企業微信進行hook,以實現企業的批量處理需求。本文作者對hook的原理及方案進行了分析,一起來看一下吧。

企業微信的社群玩法(聊聊企業微信的hook)1

由于企業微信的限制策略,導緻在群發消息、批量添加好友等場景難以滿足企業訴求。在此背景下,某些企業便對企業微信進行hook,我們今天就來聊一下hook的原理及方案。

一、基本了解

首先我們要對企業微信(也是所有C/S架構)的數據傳輸有個基本了解:企業微信手機端、PC端按照一定規則将數據上報給服務端,同時也從服務端按照規則拉取最新數據到本地。企業微信通過開放的管理後台提供API接口給企業微信服務商,服務商通過接口和企業微信進行數據交互。

用發消息場景舉個例子:

  1. 企業微信賬号A,在手機客戶端上向客戶B(個人微信)發送一條消息,内容“我是周傑倫”
  2. 這條消息内容(連同發送者、接收者等信息)通過網絡上報到企業微信服務端
  3. 企業微信服務端做一系列動作,如判斷A和B是否是好友、B是否合法等等之後,将消息發送給客戶B
  4. 客戶B收到消息後,服務商通過API接口将這條消息拉取到自己的數據庫裡
  5. 同時,如果企業微信A在PC客戶端處于登陸狀态,企業微信服務端會将剛剛發送消息這件事告訴企業微信PC客戶端,在PC客戶端上也就能看到剛剛發送給客戶B的聊天記錄
二、如何hook

我們通常需要在設備上安裝一個客戶端軟件(我們稱其為小助手)用于hook企業微信的載體工具。

1)破解數據庫/内存:拿到想要的數據

安裝客戶端後,一般會在當前硬件設備硬盤上建立數據庫,用于存儲實時性比較強、數據量比較大的數據。通過破解數據庫我們便能拿到必要的數據,比如企業微信的外部聯系人列表即存儲在本地的sqllite數據庫裡。

2)破解函數

通過函數可以拿到想要的數據以及操縱企業微信(技術老師通常叫:截取和下發)。

如圖,在發消息場景下,我們通過破解點1,僞裝成企業微信用戶A調用“發送消息函數”原始數據,讓該函數幫助我們發送消息(下發)。

企業微信的社群玩法(聊聊企業微信的hook)2

(真實的發送消息場景,是一系列函數之間的調用,而不僅僅是一兩個函數)

三、hookid是什麼

hookid前面有定語,比如外部聯系人hookid、賬号hookid、群hookid、朋友圈hookid,在企業微信中,最常用的就是外部聯系人hookid。

外部聯系人hookid,即用于标定該外部聯系人的唯一id。假如2個企業微信賬号都和外部聯系人A是好友關系,那麼A在2個企業微信的好友列表裡,hookid是相同的。

hookid是什麼怎麼生成的?

hooid不是系統自動生成的,是從企業微信在本地的sqllite數據庫的外部聯系人表中獲取的某個字段。

企業微信的社群玩法(聊聊企業微信的hook)3

四、為什麼要綁定hookid?

還是拿群發舉例子,如果想要發消息,數據需要從scrm下發給企業微信,完成群發。

發消息需要指明消息的接收人是誰。但問題是,scrm的外部聯系人列表是從官方API接口獲取的,而我們最終隻能通過hook獲取的外部聯系人列表來完成群發,兩個列表的口徑并不一緻,這時就需要利用hookid來完成數據的綁定。

企業微信的社群玩法(聊聊企業微信的hook)4

五、如何綁定hookid

1)差異化同步流程

小助手客戶端從企業微信客戶端同步完成數據後,會通知小助手服務端。

觸發條件:登錄小助手客戶端,并從小助手中打開企業微信。

服務端接到小助手客戶端的同步完成通知,會從庫中獲取該企業微信賬戶已經綁定hookid的列表。

觸發條件:服務端獲得小助手同步完成的通知。

将已綁定的hookid下發給小助手。

觸發條件:拉取到完整的hookid列表。

下發方式:一次下發200個hookid,當所有hookid都給到小助手客戶端後,會告知小助手客戶端。

小助手将已綁定的hookid在本地數據庫打上标記。

觸發條件:被服務端告知,hookid已經同步完畢。

服務端向小助手客戶端下發指令:上報無hookid外部聯系人。

小助手上報服務端未綁定hookid的外部聯系人。

内容:外部聯系人頭像、昵稱、hookid。

方式:一次給200個外部聯系人信息,所有未綁定用戶都給到服務端後,會告知服務端。

服務端将官方數據和小助手客戶端上報數據,根據頭像和昵稱進行綁定。

2)增量同步邏輯

  • 服務端獲取未綁定hookid列表
  • 将未綁定hookid列表下發給小助手(頭像、昵稱等)
  • 小助手從自己的庫裡和服務端下發的列表進行比對,将比對結果相同的聯系人上報給服務端,上報完成後通知服務端
  • 觸發條件:比對完成後。如果沒有相同的,則?
  • 服務端将官方數據和小助手上報數據,根據頭像和昵稱進行綁定
  • 觸發條件:接受到小助手上報完成通知

3)備注綁定邏輯

  • 服務端為某個hookid生成一個備注内容,并下發給小助手
  • 小助手為用戶修改備注,修改後,企業微信内部會将新的備注上報給企業微信服務端
  • 數據同步模塊會定時從企業微信官方拉取到該用戶對應的備注内容
  • 服務端根據備注内容,找到該備注對應的hookid,進行綁定
  • 服務端通過官方接口,将備注還原

企業微信的社群玩法(聊聊企業微信的hook)5

最後,分享一張企業微信(hook)服務商的整圖:

企業微信的社群玩法(聊聊企業微信的hook)6

本文由 @Shanker 原創發布于人人都是産品經理,未經許可,禁止轉載

題圖來自 Unsplash,基于 CC0 協議

,
Comments
Welcome to tft每日頭條 comments! Please keep conversations courteous and on-topic. To fosterproductive and respectful conversations, you may see comments from our Community Managers.
Sign up to post
Sort by
Show More Comments
推荐阅读
最難唱完的港樂歌曲
最難唱完的港樂歌曲
文/羊城晚報全媒體記者艾修煜圖/節目組由湖南廣電聯合TVB出品的音樂獻禮節目《聲生不息·港樂季》将于4月24日在湖南衛視(19:30播出)、芒果TV、TVB重磅播出,節目集齊内地與香港16組傳奇歌手,唱響經典港樂。在節目組近日發布的引言篇中...
2025-04-22
肛腸類檢查注意事項
肛腸類檢查注意事項
很多肛腸疾病需要手術的患者通常會有這樣子一個疑問,為什麼這麼一個小手術,術前需要抽血檢查,還需要抽那麼多管?甚至還需要做胸片、心電圖等檢查。是不是存在過度檢查的問題呢?下面給大家講解一下這些檢查不可缺少的原因。術前常規檢查肛腸手術前需要進行...
2025-04-22
減肥期間的全麥面包是怎樣做的
減肥期間的全麥面包是怎樣做的
1.全麥面包有什麼營養成分呢?全麥面包由于使用的全麥面粉加工較少,因此保留了大量的營養成分,富含粗纖維、維生素E和B族維生素,鋅、鉀等礦物質元素含量也很豐富。2.為什麼推薦全麥面包?米飯的升糖指數高,一百克米飯裡面熱量大約116千卡,碳水含...
2025-04-22
唯一遺憾的是沒能繼續在抗疫一線
唯一遺憾的是沒能繼續在抗疫一線
唯一遺憾的是沒能繼續在抗疫一線?1月6日淩晨,河南省周口市第一人民醫院120急救指揮中心主任王新華因勞累過度不幸離世,生命永遠定格在了抗疫一線,今天小編就來聊一聊關于唯一遺憾的是沒能繼續在抗疫一線?接下來我們就一起去研究一下吧!唯一遺憾的是...
2025-04-22
吃柿子和螃蟹在一起會中毒嗎
吃柿子和螃蟹在一起會中毒嗎
來源:科普中國版權歸原作者所有,如有侵權請及時聯系崇尚科學,關愛家庭珍惜生命,反對邪教,
2025-04-22
Copyright 2023-2025 - www.tftnews.com All Rights Reserved