时间:2023-05-21 14:48:01 | 来源:网站运营
时间:2023-05-21 14:48:01 来源:网站运营
Python 微信公众号开发从0开始避坑指南: 作为一个 Python 爱好者,不把 Python 代码和微信结合起来玩一玩,只能说是自绝于时代。但自从腾讯对基于网页版微信的微信自动化狠下杀手后,我们就只能把眼光投向微信公众号了。sudo dnf install python3
pip 也会同时安装,使用时记得加上3,像 python3,pip3 install 这样。web.py
lxml python
requests
pillow
等等,也要记得装好,公众号开发文档中有提到。[root@xxxxxxxxx~]# python3 main.py 80
从开发文档中开始抄代码 main.py ,上传至云服务器。在 Putty 中输入上面的命令。其中的 “80” 指的是端口 80。执行命令后,根据文档指引,在浏览器打开你的网址,可以看到:hello, this is handle view
确认你的网站应用搭建成功。 list = [token, timestamp, nonce] list.sort() sha1 = hashlib.sha1() map(sha1.update, list) # <-- 巨坑1号 hashcode = sha1.hexdigest() print "handle/GET func: hashcode, signature: ", hashcode, signature if hashcode == signature: return echostr else: return ""
上述代码中的这一句:map(sha1.update, list)
需要修改为: sha1.update(list[0].encode('utf-8')) sha1.update(list[1].encode('utf-8')) sha1.update(list[2].encode('utf-8'))
运行:[root@xxxxxxxxx~]# python3 main.py 80
在公众号的配置页面点“提交”,然后点击“启动”。IP (xxx.xxx.xxx.xxx) is not in the whitelist
这时把它提醒你的 IP 添加至白名单即可。[root@xxxxxxxxx~]# python3 main.py 80
启动你心爱的程序后,一旦 Putty 关闭,远程连接断开后,程序就会自动停止。你说这不是坑爹吗?如果本地一直要开着窗口,那还叫什么价值一百元的云计算?[root@xxxxxxxxx~]# nohup python3 main.py 80 &
运行后,可以看到:appending output to nohup.out
表示你的程序已经成功运行在云服务器的后台。如果日后你需要停止程序则需要使用:ps -aux
来查找到 python3 main.py 80 的 PID
,然后使用 kill PID 来删除。关于 Linux 这一块的操作,可以参考这篇文章来学习。request.post
来实现。具体的操作可以参考以下过程def get_id(img): #img is bytes-data _token = gt.get_token() _url = 'https://api.weixin.qq.com/cgi-bin/media/upload?access_token=' + _token + '&type=image' #print('url=', _url) payload = { 'file':('upload.jpg', img, 'image/jpg') } m = MultipartEncoder(payload) headers = { 'Content-Type':m.content_type, 'other-keys':'other-values' } _id = requests.post(_url, headers=headers, data=m).json() print('post request returns:', _id) _id = _id['media_id'] #print(_id) return _id
最后让我们来一个综合应用。【需求】用户发送一张图片给公众号,例如拍摄的一页数学作业,后台通过 OCR 处理后自动批改,返回一张批改后的图片。就是如上图这样(令人捉急的正确率)。
关键词:指南,公众