国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > Python > 正文

Python微信公眾號開發平臺

2020-02-22 22:59:23
字體:
來源:轉載
供稿:網友

 

上大學的時候,對微信公眾號開發淺嘗輒止的玩了一下,感覺還是挺有意思的。

//www.jb51.net/article/133677.htm后來服務器到期了,也就擱置了。由于發布web程序,使用PHP很順手,就使用了PHP作為開發語言。但是其實微信公眾號的開發和語言關聯并不大,流程,原理上都是一致的。

快要做畢設了,想著到時候應該會部署一些代碼到服務器上,進行長期的系統構建。所以趁著還是學生,就買了阿里云的學生機。買了之后,就想著玩點什么,于是微信公眾號的開發,就又提上了日程。但是這次,我不打算使用PHP了,感覺局限性相對于Python而言,稍微有點大。

使用Python的話,可以靈活的部署一些爬蟲類程序,和用戶交互起來也會比較方便。可拓展性感覺也比較的高,于是就選它了。

服務器配置這部分屬于是比較基礎的,不太明白的可以看看我之前的那個博客,還算是比較的詳細。今天就只是對核心代碼做下介紹好了。

項目目錄

root@aliyun:/var/www/html/wx/py# ls *.pyapi.py dispatcher.py robot.pyroot@aliyun:/var/www/html/wx/py# 

api.py

這個文件相當于是一個關卡,涉及token的驗證,和服務的支持。

# -*- coding:utf-8 -*-    #中文編碼import sysreload(sys) # 不加這部分處理中文還是會出問題sys.setdefaultencoding('utf-8')import timefrom flask import Flask, request, make_responseimport hashlibimport jsonimport xml.etree.ElementTree as ETfrom dispatcher import *app = Flask(__name__)app.debug = True@app.route('/') # 默認網址def index(): return 'Index Page'@app.route('/wx', methods=['GET', 'POST'])def wechat_auth(): # 處理微信請求的處理函數,get方法用于認證,post方法取得微信轉發的數據 if request.method == 'GET': token = '你自己設置好的token' data = request.args signature = data.get('signature', '') timestamp = data.get('timestamp', '') nonce = data.get('nonce', '') echostr = data.get('echostr', '') s = [timestamp, nonce, token] s.sort() s = ''.join(s) if (hashlib.sha1(s).hexdigest() == signature):  return make_response(echostr) else: rec = request.stream.read() # 接收消息 dispatcher = MsgDispatcher(rec) data = dispatcher.dispatch() with open("./debug.log", "a") as file:  file.write(data)  file.close() response = make_response(data) response.content_type = 'application/xml' return responseif __name__ == '__main__': app.run(host="0.0.0.0", port=80)

dispatcher.py

這個文件是整個服務的核心,用于識別用戶發來的消息類型,然后交給不同的handler來處理,并將運行的結果反饋給前臺,發送給用戶。消息類型這塊,在微信的開發文檔上有詳細的介紹,因此這里就不再過多的贅述了。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 双桥区| 永丰县| 沅陵县| 托克托县| 屏南县| 榕江县| 曲周县| 远安县| 镇坪县| 高雄市| 体育| 乌恰县| 云南省| 常山县| 巴中市| 遵化市| 武隆县| 荆州市| 千阳县| 黑水县| 辉南县| 威远县| 扎赉特旗| 保山市| 上饶市| 托克托县| 龙州县| 桓台县| 珠海市| 鹿邑县| 新和县| 宕昌县| 隆子县| 武隆县| 纳雍县| 贵德县| 林口县| 凌云县| 宣化县| 宣城市| 阿勒泰市|