本文面向想經過Python學習公衆號開發的同窗。一站式解決新手開發微信公衆號遇到的全部問題。python
爲了防止個人文章被處處轉載,貼一下個人公衆號【智能製造社區】,歡迎你們關注。git
github倉庫地址https://github.com/injetlee/Python/tree/master/wechatgithub
本篇文章首先實現與公衆號的對接,實現簡單的回覆文字、圖片內容。下一篇會對接騰訊的AI平臺,實現對照片的人臉檢測與分析,分析年齡、性別、表情、魅力值等。算法
首先要註冊一個公衆號,這個很簡單,咱們到微信公衆平臺註冊就能夠了,選擇我的訂閱號就能夠。可是若是能夠認證的,我建議選擇認證訂閱號,由於未認證的號不少功能權限都沒有。好了,話很少說進入正題。服務器
.\ngrok.exe http 80
便可啓動。啓動後以下圖所示,圖片中網址就是咱們須要的import falcon from falcon import uri from wechatpy.utils import check_signature from wechatpy.exceptions import InvalidSignatureException class Connect(object): def on_get(self, req, resp): query_string = req.query_string query_list = query_string.split('&') b = {} for i in query_list: b[i.split('=')[0]] = i.split('=')[1] try: check_signature(token='這裏填寫配置界面你輸入的token', signature=b['signature'], timestamp=b['timestamp'], nonce=b['nonce']) resp.body = (b['echostr']) except InvalidSignatureException: pass resp.status = falcon.HTTP_200 app = falcon.API() connect = Connect() app.add_route('/connect', connect)
waitress-serve --port=80 connect:app
在80端口啓動咱們的程序。啓動後以下圖,表明啓動成功,這時候咱們到微信的配置頁面點擊提交,會彈出提交成功消息框,表明咱們成功接入微信import falcon from wechatpy.utils import check_signature from wechatpy.exceptions import InvalidSignatureException from wechatpy import parse_message from wechatpy.replies import TextReply, ImageReply class Connect(object): def on_get(self, req, resp): query_string = req.query_string query_list = query_string.split('&') b = {} for i in query_list: b[i.split('=')[0]] = i.split('=')[1] try: check_signature(token='xxxxx', signature=b['signature'], timestamp=b['timestamp'], nonce=b['nonce']) resp.body = (b['echostr']) except InvalidSignatureException: pass resp.status = falcon.HTTP_200 def on_post(self, req, resp): xml = req.stream.read() msg = parse_message(xml) if msg.type == 'text': reply = TextReply(content=msg.content, message=msg) xml = reply.render() resp.body = (xml) resp.status = falcon.HTTP_200 app = falcon.API() connect = Connect() app.add_route('/connect', connect)
import falcon from wechatpy.utils import check_signature from wechatpy.exceptions import InvalidSignatureException from wechatpy import parse_message from wechatpy.replies import TextReply, ImageReply class Connect(object): def on_get(self, req, resp): query_string = req.query_string query_list = query_string.split('&') b = {} for i in query_list: b[i.split('=')[0]] = i.split('=')[1] try: check_signature(token='xxxxxxx', signature=b['signature'], timestamp=b['timestamp'], nonce=b['nonce']) resp.body = (b['echostr']) except InvalidSignatureException: pass resp.status = falcon.HTTP_200 def on_post(self, req, resp): xml = req.stream.read() msg = parse_message(xml) if msg.type == 'text': reply = TextReply(content=msg.content, message=msg) xml = reply.render() resp.body = (xml) resp.status = falcon.HTTP_200 elif msg.type == 'image': reply = ImageReply(media_id=msg.media_id, message=msg) xml = reply.render() resp.body = (xml) resp.status = falcon.HTTP_200 app = falcon.API() connect = Connect() app.add_route('/connect', connect)