用 Python 和 werobot 开发微信公众号
程序员文章站
2022-05-04 08:53:04
一、准备环境 1. 云主机和域名 云主机 推荐使用阿里云或者腾讯云的ecs主机,如果有学生证的话都很便宜。 域名 国内的话,在阿里云或者腾讯云购买都可以,国内域名都需要备案,备案按照文档去做。 ssl证书 云服务商一般都有免费的ssl证书申请,也可以使用let's encrypt的证书。 2. 公众 ......
一、准备环境
1. 云主机和域名
云主机
推荐使用阿里云或者腾讯云的ecs主机,如果有学生证的话都很便宜。
域名
国内的话,在阿里云或者腾讯云购买都可以,国内域名都需要备案,备案按照文档去做。
ssl证书
云服务商一般都有免费的ssl证书申请,也可以使用let's encrypt的证书。
2. 公众号测试账号
在申请到认证公众号之前,你可以先通过测试号申请系统,快速申请一个,立即开始接口测试开发。
二、hello world例子
最简单的hello world, 会给收到的每一条信息回复 hello world
import werobot robot = werobot.werobot(token='tokenhere') @robot.handler def hello(message): return 'hello world!' # 让服务器监听在 0.0.0.0:80 robot.config['host'] = '0.0.0.0' robot.config['port'] = 80 robot.run()
二、操作过程
1. 服务器上部署代码
首先通过pip安装werobot
pip install werobot
2. 创建hello world例子
#coding:utf-8 # filename:hello_world.py # 验证服务器,并且收到的所有消息都回复'hello world!' import werobot robot = werobot.werobot(token='your token') # @robot.handler 处理所有消息 @robot.handler def hello(message): return 'hello world!' # 让服务器监听在 0.0.0.0:80 robot.config['host'] = '0.0.0.0' robot.config['port'] = 80 robot.run()
'your token' 处要填写你自己的token,要保证这个token跟公众号平台的token一致,然后运行。
3. 验证服务器
在公众号的基本配置页面填好配置信息,主要是url地址、token的填写,点提交,如果没报错就验证成功,最后点击“启用配置”。
三、原理解释
- 微信公众号开发其实就是web开发,多了些appid、appsecret等概念,多一些特殊的验证过程。
- werobot 会解析微信服务器发来的消息, 并将消息转换成成 message 或者是 event 。 message 表示用户发来的消息,如文本消息、图片消息; event 则表示用户触发的事件, 如关注事件、扫描二维码事件。 在消息解析、转换完成后, werobot 会将消息转交给 handler 进行处理,并将 handler 的返回值返回给微信服务器。
- 可以理解为,例子代码中hello函数的理解最重要,可理解为,当收到用户消息时,就进入函数,函数的返回结果会返回给微信服务器,微信服务器再转发给当前的微信用户。
- 实际效果为,用户关注公众号后,每次发消息,都收到'hello world!'文本。
四、练习题
通过查文档、了解robot.text, robot.filter注解的作用,把功能修改成,用户发送'hello'时,服务器返回'hello world!',其他时间返回'谢谢'文本。