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