概述
在前面的文章中,介紹了如何創建個人企業賬號以及在企業賬號中自建應用,這里就繼續介紹如何讓自己自建的應用能夠與我們的業務交互,也就是接收消息和事件~
關於這部分內容,官網也給了具體的解釋:
為了能夠讓自建應用和企業微信進行雙向通信,企業可以在應用的管理后台開啟接收消息模式。
開啟接收消息模式的企業,需要提供可用的接收消息服務器URL。
開啟接收消息模式后,用戶在應用里發送的消息會推送給企業后台。此外,還可配置地理位置上報等事件消息,當事件觸發時企業微信會把相應的數據推送到企業的后台。
企業后台接收到消息后,可在回復該消息請求的響應包里帶上新消息,企業微信會將該被動回復消息推送給用戶。
除了上述的介紹外,官網有具體引導:接收消息與事件
自建應用
開啟接收消息與事件
開啟應用消息接收
在企業的管理端后台,進入需要設置接收消息的目標應用,點擊“接收消息”的“設置API接收”按鈕,進入配置頁面。
先給大家展示下筆者這里的配置:

除了URL需要自己配置,Tokne和EncodingAESKey都是隨機獲取的;
這里的url,為筆者公司公網IP所對應的域名,加上路由器上的自定義轉發端口,轉發到內網我指定的一台設備上去,這台設備上,就搭建了我使用Python的web.py框架部署的服務,來跟自建應用之間做交互,URL中匹配的“recvmsg”,是我服務的路由之一~標識匹配后端的接收消息模塊。
注意:在配置接收消息服務器的url之前,你需要先把你的服務開起來,並保證能夠正確響應請求,回復參數,這樣你的服務器配置才能正確的提交上去~
因為在你點擊保存按鈕的時候,企業微信回去驗證你URL的有效性~官網的接收消息與事件有詳細說明,所以,后面的重點就是先把代碼部分擼起來。
代碼
前面說到后端服務使用web.py,關於web.py的相關知識,這里就不詳細描述了。
首先對整個項目涉及到的部分做個概覽,后面再對每個部分做詳解:
root@saier-zj-online-game-192:~/zj/gm_tools# tree .
.
├── callback #官方提供的加解密模塊,不需要編輯
│ ├── ierror.py
│ ├── ierror.pyc
│ ├── __init__.py
│ ├── __init__.pyc
│ ├── Readme.txt
│ ├── Sample.py
│ ├── WXBizMsgCrypt3.py
│ ├── WXBizMsgCrypt.py
│ └── WXBizMsgCrypt.pyc
├── command.py #指令操作模塊
├── command.pyc
├── config.py #配置參數模塊
├── config.pyc
├── gm_push.py #進程控制腳本
├── gm_push.pyc
├── handler.py #路由所對應的全部方法
├── handler.pyc
├── keys #遠程連接使用到的密鑰
│ └── all
├── log #日志目錄
│ ├── WXCommand.log
│ └── WXManager.log
├── manage_msg.py #核心邏輯處理模塊
├── manage_msg.pyc
├── nohup.out
├── restart.sh #服務控制腳本
├── urls.py #路由模塊
└── urls.pyc
關於配置接受消息與事件所涉及到的代碼,以及后續所有功能和回調代碼,想了想還是大家自己去GitHub上看吧,沒必要一句一句來剖析;
本想着寫一部連續文章的,想想還是到這里結束掉好了,大家有問題的可以給我留言,祝順利。
GitHub地址:https://github.com/caijijian/qywx
