今天看到篇教程,是用python開發微信公眾號的,覺得有意思,就敲代碼實現了一下,成功后更覺得好玩,故記錄,方便開發深入時使用。
基礎背景介紹
首先得有個人微信號(沒有自行注冊),為方便測試學習;
其次,還要注冊微信公眾號,微信公眾號不止一種,是分多種的,具體詳情見官方說明,但僅測試學習時可先不注冊公眾號,(需要用個人微信號掃描登陸測試公眾平臺)利用微信提供的測試平臺接口即可:
微信公眾號說明:http://kf.qq.com/faq/120911VrYVrA130805byM32u.html
微信公眾號注冊站點:https://mp.weixin.qq.com/
免費測試公眾平臺:https://mp.weixin.qq.com/debug/cgi-bin/sandbox?t=sandbox/login
微信開發者文檔:https://mp.weixin.qq.com/wiki?t=resource/res_main&id=mp1445241432
正文開始
說明:最好使用公網ip主機和備案的域名進行測試,本文測試使用的阿里云主機有公網ip,域名備案遇到坑了,買了域名無法在北京阿里云上備案,所以沒有使用域名。
接入微信公眾平臺
其實,微信api接口使用,這里主要是參考官網的說明部署的,步驟有點像曾經寫過的一篇用zabbix實現微信報警的配置;想玩好了,除了要對使用的哪種語言本身熟悉,還要就是熟讀微信的api接口文檔了。
第一步:填寫服務器配置nxinx
掃描登陸免費的微信測試平臺,填寫接口配置信息:
注意:微信公眾號接口只支持80端口。所以,在填寫url時我是在阿里云上用nginx做的一個web服務。
阿里云主機上的nginx主要部分配置如下:
第二步:驗證消息的確來自微信服務器(即驗證服務器地址的有效性):
開發者提交信息后,微信服務器將發送GET請求到填寫的服務器地址url上,GET請求攜帶4個參數:
1. signature:微信加密簽名,signature結合了開發者填寫的token參數和請求中的timestamp參數、nonce參數;2.timestamp:時間戳;3.nonce:隨機數;4.echostr:隨即字符串;
開發者通過檢驗signature對請求進行校驗,若確認此處get請求來自微信服務器,請原樣返回echostr參數內容,則接入生效,成為開發者成功,否則接入失??;
阿里云主機上編寫python代碼,(以tonado框架為例)實現驗證:
運行代碼:
python wechat.py
然后,回到微信開發平臺,在填寫完接口配置信息后,點擊提交;一切正常,提交后會顯示配置成功;
下面,就可以根據個人用戶關注開發的公眾號所要實現哪些需求和微信的api文檔開發相關功能了。
示例一:簡單文本信息
個人用戶關注公眾號后,用戶輸入字符串,公眾號回顯什么字符串;
具體還要參考微信api文檔:消息管理部分
python代碼:
運行代碼:
python wechat.py
然后,在微信公眾平臺上,找到測試號二維碼,掃描關注后,首次關注時,手機微信客戶端就會收到自動推送的信息,即顯示i like python。
然后,客戶端發送字符串測試回顯功能:
手機關注公眾號后,打開對話框,隨意輸入字符,回顯相同內容,則表示測試成功(僅實現文本的回顯,因為微信對于不同類型的信息,有不同的配置要求,如要接收或發送圖片、音頻、視頻等)。
示例二:微信自帶的圖片消息收發
實現能發送或接收圖片信息,則修改部分代碼,其它部分不變
運行后,再回到手機微信客戶端,發送笑臉圖片等,測試回顯相同的圖片即成功。
示例三:掃描公眾號內部生成的帶參數的二維碼
說明: 此代碼需要在本地虛擬機上和阿里云主機上同時運行,進行相關測試; 本地運行后,在本地瀏覽器訪問,(目的是為了生成二維碼): http://192.168.1.250:8000/qrcode?sid=8000
然后,會生成二維碼,這時再用微信掃描改二維碼:
手機微信掃描上面的二維碼后,會顯示:您掃描是的8000。
這就簡單實現了掃描帶參數的二維碼后,可自定義深入的開發;如根據,把參數定義成不同的內容,根據二維碼參數,來識別出不同的內容,等等。
更多深入功能還不會,用時再借鑒吧。
-
python
+關注
關注
56文章
4792瀏覽量
84627 -
微信
+關注
關注
6文章
511瀏覽量
26547
原文標題:用 Python 進行微信公眾號開發
文章出處:【微信號:magedu-Linux,微信公眾號:馬哥Linux運維】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
相關推薦
評論